1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-06 00:07:44 +01:00
unleash.unleash/frontend/src/hooks/useClearSWRCache.test.ts

54 lines
1.9 KiB
TypeScript
Raw Normal View History

import { clearCacheEntries } from './useClearSWRCache';
describe('manageCacheEntries', () => {
it('should clear old cache entries and keep the current one when SWR_CACHE_SIZE is not provided', () => {
const cacheMock = new Map();
cacheMock.set('prefix-1', {});
cacheMock.set('prefix-2', {});
cacheMock.set('prefix-3', {});
clearCacheEntries(cacheMock, 'prefix-3', 'prefix-');
expect(cacheMock.has('prefix-1')).toBe(false);
expect(cacheMock.has('prefix-2')).toBe(false);
expect(cacheMock.has('prefix-3')).toBe(true);
});
it('should keep the SWR_CACHE_SIZE entries and delete the rest', () => {
const cacheMock = new Map();
cacheMock.set('prefix-1', {});
cacheMock.set('prefix-2', {});
cacheMock.set('prefix-3', {});
cacheMock.set('prefix-4', {});
clearCacheEntries(cacheMock, 'prefix-4', 'prefix-', 2);
expect(cacheMock.has('prefix-4')).toBe(true);
expect([...cacheMock.keys()].length).toBe(2);
});
it('should handle case when SWR_CACHE_SIZE is larger than number of entries', () => {
const cacheMock = new Map();
cacheMock.set('prefix-1', {});
cacheMock.set('prefix-2', {});
clearCacheEntries(cacheMock, 'prefix-2', 'prefix-', 5);
expect(cacheMock.has('prefix-1')).toBe(true);
expect(cacheMock.has('prefix-2')).toBe(true);
});
it('should not delete entries that do not match the prefix', () => {
const cacheMock = new Map();
cacheMock.set('prefix-1', {});
cacheMock.set('other-2', {});
cacheMock.set('prefix-3', {});
clearCacheEntries(cacheMock, 'prefix-3', 'prefix-', 2);
expect(cacheMock.has('prefix-1')).toBe(true);
expect(cacheMock.has('other-2')).toBe(true);
expect(cacheMock.has('prefix-3')).toBe(true);
});
});