-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAdapter.getMultiple.test.ts
77 lines (72 loc) · 2.56 KB
/
Adapter.getMultiple.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import type { CacheInterface } from '@soluble/cache-interop';
import { Guards } from '@soluble/cache-interop';
import { getTestAdapters } from '../setup/getTestAdapters';
const adapters = getTestAdapters();
describe.each(adapters)('Adapter: %s', (name, adapterFactory) => {
let cache: CacheInterface;
beforeAll(async () => {
cache = await adapterFactory();
});
afterEach(async () => {
await cache.clear();
});
afterAll(async () => {
if (Guards.isConnectedCache(cache)) {
await cache.getConnection().quit();
}
});
describe('Adapter.getMultiple()', () => {
describe('when some cache entries exists', () => {
it('should only return existing keys', async () => {
await cache.set('key1', 'val1');
await cache.setMultiple([['key2', 'val2']]);
const resp = await cache.getMultiple([
'key1',
'key2',
'key-not-exists',
]);
expect(resp.size).toBe(3);
expect(resp.get('key1')?.data).toStrictEqual('val1');
expect(resp.get('key2')?.data).toStrictEqual('val2');
expect(resp.get('key-not-exists')?.data).toBeNull();
});
});
describe('when some entries exists and defaultValue is provided', () => {
it('should return existing keys and set the defaults to others', async () => {
await cache.set('key1', 'val1');
await cache.setMultiple([['key2', 'val2']]);
const resp = await cache.getMultiple(
['key1', 'key2', 'key-not-exists'],
{
defaultValue: 'the_default_value',
}
);
expect(resp.size).toBe(3);
expect(resp.get('key1')?.data).toStrictEqual('val1');
expect(resp.get('key2')?.data).toStrictEqual('val2');
expect(resp.get('key-not-exists')?.data).toStrictEqual(
'the_default_value'
);
});
});
describe('when disableCache is set to true', () => {
it('should return null but respect defaultValue', async () => {
await cache.set('key1', 'val1');
await cache.setMultiple([['key2', 'val2']]);
const resp = await cache.getMultiple(
['key1', 'key2', 'key-not-exists'],
{
defaultValue: 'the_default_value',
disableCache: true,
}
);
expect(resp.size).toBe(3);
expect(resp.get('key1')?.data).toStrictEqual('the_default_value');
expect(resp.get('key2')?.data).toStrictEqual('the_default_value');
expect(resp.get('key-not-exists')?.data).toStrictEqual(
'the_default_value'
);
});
});
});
});