@v4fire/core
Version:
V4Fire core library
36 lines (35 loc) • 1.52 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _kvStorage = require("../../../core/kv-storage");
var _persistent = _interopRequireDefault(require("../../../core/cache/decorators/persistent"));
var _ttl = _interopRequireDefault(require("../../../core/cache/decorators/ttl"));
var _restricted = _interopRequireDefault(require("../../../core/cache/restricted"));
var _const = require("../../../core/cache/decorators/persistent/engines/const");
describe('core/cache/decorators', () => {
it('complex test', async () => {
jest.spyOn(Date, 'now').mockReturnValue(0);
const opts = {
loadFromStorage: 'onInit'
};
const cache = new _restricted.default(2),
cacheWithTTL = (0, _ttl.default)(cache),
persistentCache = await (0, _persistent.default)(cacheWithTTL, _kvStorage.asyncLocal, opts);
await persistentCache.set('foo', 1);
await persistentCache.set('bar', 1, {
ttl: 10
});
expect(await _kvStorage.asyncLocal.get(_const.INDEX_STORAGE_NAME)).toEqual({
foo: Number.MAX_SAFE_INTEGER,
bar: Number.MAX_SAFE_INTEGER
});
await persistentCache.set('baz', 1);
expect(await _kvStorage.asyncLocal.get(_const.INDEX_STORAGE_NAME)).toEqual({
bar: Number.MAX_SAFE_INTEGER,
baz: Number.MAX_SAFE_INTEGER
});
await new Promise(r => setTimeout(r, 50));
expect(await _kvStorage.asyncLocal.get(_const.INDEX_STORAGE_NAME)).toEqual({
baz: Number.MAX_SAFE_INTEGER
});
});
});