You've already forked tf2wikipricing
refactor: fetchPrice now expects an SKU string
This commit is contained in:
@@ -49,7 +49,7 @@ describe('Price Service', () => {
|
||||
test('fetchPrice returns cached data if available and not expired', async () => {
|
||||
(getStorageValue as jest.Mock).mockResolvedValue(mockCachedData)
|
||||
|
||||
const result = await fetchPrice(mockToken, mockDefIndex, mockQuality)
|
||||
const result = await fetchPrice(mockToken, mockDefIndex + ";" + mockQuality)
|
||||
|
||||
expect(getStorageValue).toHaveBeenCalledWith(expect.stringContaining(mockSku), null)
|
||||
expect(result).toEqual(mockCachedData)
|
||||
@@ -60,7 +60,7 @@ describe('Price Service', () => {
|
||||
(getStorageValue as jest.Mock).mockResolvedValue(expiredCache);
|
||||
(priceUsingPricesTF as jest.Mock).mockResolvedValue(mockPriceResponse)
|
||||
|
||||
const result = await fetchPrice(mockToken, mockDefIndex, mockQuality)
|
||||
const result = await fetchPrice(mockToken, mockDefIndex + ";" + mockQuality)
|
||||
|
||||
expect(priceUsingPricesTF).toHaveBeenCalledWith(mockToken, `${mockDefIndex};${mockQuality}`)
|
||||
expect(setStorageValue).toHaveBeenCalled()
|
||||
@@ -69,7 +69,7 @@ describe('Price Service', () => {
|
||||
})
|
||||
|
||||
test('fetchPrice rejects with 401 when no token provided', async () => {
|
||||
await expect(fetchPrice('', mockDefIndex, mockQuality)).rejects.toBe(401)
|
||||
await expect(fetchPrice('', mockDefIndex + ";" + mockQuality)).rejects.toBe(401)
|
||||
})
|
||||
|
||||
test('fetchPrice handles pricing API errors', async () => {
|
||||
@@ -77,7 +77,7 @@ describe('Price Service', () => {
|
||||
(priceUsingPricesTF as jest.Mock).mockRejectedValue(testError);
|
||||
(getStorageValue as jest.Mock).mockResolvedValue(null)
|
||||
|
||||
await expect(fetchPrice(mockToken, mockDefIndex, mockQuality)).rejects.toBe(testError)
|
||||
await expect(fetchPrice(mockToken, mockDefIndex + ";" + mockQuality)).rejects.toBe(testError)
|
||||
})
|
||||
|
||||
test('fetchKeyPrice uses correct parameters', async () => {
|
||||
|
||||
@@ -206,7 +206,7 @@ async function inject() {
|
||||
|
||||
var data: ItemPriceData | null
|
||||
try {
|
||||
data = await fetchPrice(token, itemIndex, quality, currentTime);
|
||||
data = await fetchPrice(token, itemIndex + ";" + quality, currentTime);
|
||||
updateTime = new Date(data.update)
|
||||
} catch {
|
||||
log(`${qualifiedName} is unpriced or unavailable, skipping...`)
|
||||
|
||||
@@ -30,7 +30,7 @@ export class ItemPriceData {
|
||||
|
||||
|
||||
export async function fetchKeyPrice(token: string) {
|
||||
return fetchPrice(token, defindex_key, 6, new Date(), 86400000)
|
||||
return fetchPrice(token, `${defindex_key};6`, new Date(), 86400000)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -39,9 +39,8 @@ export async function fetchKeyPrice(token: string) {
|
||||
* @param update Date retrieved.
|
||||
* @param ttl Time to cache results in milliseconds. 30 minutes by default.
|
||||
*/
|
||||
export async function fetchPrice(token: string, defIndex: number, quality: number, update: Date = new Date(), ttl: number = 30 * 60 * 1000): Promise<ItemPriceData> {
|
||||
export async function fetchPrice(token: string, sku: string, update: Date = new Date(), ttl: number = 30 * 60 * 1000): Promise<ItemPriceData> {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
const sku = defIndex.toString() + ";" + quality.toString();
|
||||
var data: ItemPriceData | null
|
||||
|
||||
const cached = await getStorageValue(storage_priceprefix + sku, null)
|
||||
|
||||
Reference in New Issue
Block a user