35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { describe, expect, test } from 'vitest'
|
|
import { RegionalMarketCache } from './RegionalMarketCache'
|
|
|
|
describe('RegionalMarketCache', () => {
|
|
test('should cache and retrieve values', async () => {
|
|
const cache = new RegionalMarketCache<string>(1000)
|
|
|
|
cache.set(1, 1, 'test')
|
|
expect(cache.get(1, 1)).toBe('test')
|
|
})
|
|
|
|
test('should remove values', async () => {
|
|
const cache = new RegionalMarketCache<string>(1000)
|
|
|
|
cache.set(1, 1, 'test')
|
|
cache.remove(1, 1)
|
|
expect(cache.get(1, 1)).toBeUndefined()
|
|
})
|
|
|
|
test('should compute values if absent', async () => {
|
|
const cache = new RegionalMarketCache<string>(1000)
|
|
const value = await cache.computeIfAbsent(1, 1, () => Promise.resolve('test'))
|
|
|
|
expect(value).toBe('test')
|
|
expect(cache.get(1, 1)).toBe('test')
|
|
})
|
|
|
|
test('should expire values', async () => {
|
|
const cache = new RegionalMarketCache<string>(1)
|
|
|
|
cache.set(1, 1, 'test')
|
|
await new Promise(resolve => setTimeout(resolve, 10))
|
|
expect(cache.get(1, 1)).toBeUndefined()
|
|
})
|
|
}) |