44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
import { expect, tap } from '@push.rocks/tapbundle';
|
|
import * as levelcache from '../ts/index.js';
|
|
import { CacheEntry } from '../ts/index.js';
|
|
|
|
let testLevelCache: levelcache.LevelCache;
|
|
|
|
tap.test('should create a new levelcache instance', async () => {
|
|
testLevelCache = new levelcache.LevelCache({
|
|
cacheId: 'myCache',
|
|
});
|
|
expect(testLevelCache).toBeInstanceOf(levelcache.LevelCache);
|
|
});
|
|
|
|
tap.test('should cache a value', async () => {
|
|
await testLevelCache.storeCacheEntryByKey(
|
|
'mykey',
|
|
new CacheEntry({
|
|
contents: Buffer.from('heythere'),
|
|
ttl: 10000,
|
|
typeInfo: 'string',
|
|
})
|
|
);
|
|
const result = await testLevelCache.retrieveCacheEntryByKey('mykey');
|
|
expect(result.contents.toString()).toEqual('heythere');
|
|
});
|
|
|
|
tap.test('should respect ttl', async (tools) => {
|
|
await testLevelCache.storeCacheEntryByKey(
|
|
'mykey',
|
|
new CacheEntry({
|
|
contents: Buffer.from('heythere'),
|
|
ttl: 1000,
|
|
typeInfo: 'string',
|
|
})
|
|
);
|
|
const result = await testLevelCache.retrieveCacheEntryByKey('mykey');
|
|
expect(result.contents.toString()).toEqual('heythere');
|
|
await tools!.delayFor(1100);
|
|
const result2 = await testLevelCache.retrieveCacheEntryByKey('mykey');
|
|
expect(result2).toBeNull();
|
|
});
|
|
|
|
tap.start();
|