Created
May 18, 2022 23:29
-
-
Save lucasraziel/92653adef8f8a15f0f9f80f115cce8f0 to your computer and use it in GitHub Desktop.
RedisCacheProvider.ts in __tests__ in Usando NPM Package para criar uma Arquitetura Limpa - Parte 3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Data } from '@fvsystem/cache-template'; | |
import RedisCacheProvider from '../src/provider/RedisCacheProvider'; | |
jest.mock('ioredis'); | |
let redisCacheProvider: RedisCacheProvider; | |
describe('RedisCacheProvider', () => { | |
beforeEach(() => { | |
redisCacheProvider = new RedisCacheProvider({}); | |
jest.resetAllMocks(); | |
}); | |
it('should be abble to add and recover value', async () => { | |
const data: Data<number> = { | |
key: 'test', | |
data: 1, | |
}; | |
await redisCacheProvider.save(data, 'app:'); | |
const dataRecovered = await redisCacheProvider.recover<number>( | |
'test', | |
'app:' | |
); | |
expect(dataRecovered).toBe(1); | |
}); | |
it('should be remove value after some time', async () => { | |
const data: Data<number> = { | |
key: 'test', | |
data: 1, | |
}; | |
jest.useFakeTimers(); | |
await redisCacheProvider.save(data, 'app:', { ttlInSeconds: 3 }); | |
const dataRecovered = await redisCacheProvider.recover<number>( | |
'test', | |
'app:' | |
); | |
expect(dataRecovered).toBe(1); | |
jest.runAllTimers(); | |
const newDataRecovered = await redisCacheProvider.recover<number>( | |
'test', | |
'app:' | |
); | |
expect(newDataRecovered).toBe(null); | |
}); | |
it('should invalidate Key', async () => { | |
const value: Data<number> = { | |
key: 'test', | |
data: 1, | |
}; | |
await redisCacheProvider.save(value, 'app:'); | |
const dataRecovered = await redisCacheProvider.recover<number>( | |
'test', | |
'app:' | |
); | |
expect(dataRecovered).toEqual(1); | |
await redisCacheProvider.invalidate('test', 'app:'); | |
const newDataRecovered = await redisCacheProvider.recover<number>( | |
'test', | |
'app:' | |
); | |
expect(newDataRecovered).toBe(null); | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment