UNPKG

@linkedmink/multilevel-aging-cache

Version:

Package provides an interface to cache and persist data to Redis, MongoDB, memory

37 lines (29 loc) 1.33 kB
import { OverwriteAlwaysDeleteStrategy } from 'cache/OverwriteAlwaysDeleteStrategy'; import { StorageHierarchy } from 'storage/StorageHierarchy'; import { MockStorageHierarchy, MockAgedQueue } from '../Mocks'; import { AgingCacheWriteStatus } from 'cache/IAgingCache'; import { setGlobalMockTransport } from '../MockTransport'; describe(OverwriteAlwaysDeleteStrategy.name, () => { let hierarchyMock: StorageHierarchy<string, string>; let evictQueueMock: MockAgedQueue<string>; let strategy: OverwriteAlwaysDeleteStrategy<string, string>; beforeAll(() => { setGlobalMockTransport(); }); beforeEach(() => { hierarchyMock = new MockStorageHierarchy() as unknown as StorageHierarchy<string, string>; evictQueueMock = new MockAgedQueue<string>(); strategy = new OverwriteAlwaysDeleteStrategy(hierarchyMock, evictQueueMock); }); test('should return instance when constructor parameters are valid', () => { expect(strategy).toBeDefined(); }); test('should execute delete unconditionally when delete() is called', () => { const testKey = 'TEST_KEY'; const promise = strategy.delete(testKey, false); return promise.then(status => { expect(status).toEqual(AgingCacheWriteStatus.Success); expect(hierarchyMock.deleteAtLevel).toBeCalledWith(testKey); }); }); });