@@ -21,6 +21,19 @@ describe('multiCaching', () => {
21
21
let defaultTtl : number ;
22
22
let key : string ;
23
23
24
+ async function multiMset ( ) {
25
+ const keys = [ faker . datatype . string ( 20 ) , faker . datatype . string ( 20 ) ] ;
26
+ const values = [ faker . datatype . string ( ) , faker . datatype . string ( ) ] ;
27
+ await multiCache . mset (
28
+ [
29
+ [ keys [ 0 ] , values [ 0 ] ] ,
30
+ [ keys [ 1 ] , values [ 1 ] ] ,
31
+ ] ,
32
+ defaultTtl ,
33
+ ) ;
34
+ return { keys, values } ;
35
+ }
36
+
24
37
beforeEach ( async ( ) => {
25
38
ttl = 100 ;
26
39
defaultTtl = 5000 ;
@@ -93,15 +106,7 @@ describe('multiCaching', () => {
93
106
94
107
describe ( 'mset()' , ( ) => {
95
108
it ( 'lets us set multiple keys in all caches' , async ( ) => {
96
- const keys = [ faker . datatype . string ( 20 ) , faker . datatype . string ( 20 ) ] ;
97
- const values = [ faker . datatype . string ( ) , faker . datatype . string ( ) ] ;
98
- await multiCache . mset (
99
- [
100
- [ keys [ 0 ] , values [ 0 ] ] ,
101
- [ keys [ 1 ] , values [ 1 ] ] ,
102
- ] ,
103
- defaultTtl ,
104
- ) ;
109
+ const { keys, values } = await multiMset ( ) ;
105
110
await expect ( memoryCache . get ( keys [ 0 ] ) ) . resolves . toEqual ( values [ 0 ] ) ;
106
111
await expect ( memoryCache2 . get ( keys [ 0 ] ) ) . resolves . toEqual ( values [ 0 ] ) ;
107
112
await expect ( memoryCache3 . get ( keys [ 0 ] ) ) . resolves . toEqual ( values [ 0 ] ) ;
@@ -113,31 +118,28 @@ describe('multiCaching', () => {
113
118
114
119
describe ( 'mget()' , ( ) => {
115
120
it ( 'lets us get multiple keys' , async ( ) => {
116
- const keys = [ faker . datatype . string ( 20 ) , faker . datatype . string ( 20 ) ] ;
117
- const values = [ faker . datatype . string ( ) , faker . datatype . string ( ) ] ;
121
+ const { keys, values } = await multiMset ( ) ;
118
122
await multiCache . set ( keys [ 0 ] , values [ 0 ] , defaultTtl ) ;
119
123
await memoryCache3 . set ( keys [ 1 ] , values [ 1 ] , defaultTtl ) ;
120
124
await expect ( multiCache . mget ( ...keys ) ) . resolves . toStrictEqual ( values ) ;
121
125
} ) ;
126
+
127
+ it ( 'lets us get multiple undefined' , async ( ) => {
128
+ const len = 4 ;
129
+ await multiMset ( ) ;
130
+ const args = faker . datatype . array ( len ) . map ( ( x ) => '' + x ) ;
131
+ await expect ( multiCache . mget ( ...args ) ) . resolves . toStrictEqual (
132
+ new Array ( len ) . fill ( undefined ) ,
133
+ ) ;
134
+ } ) ;
122
135
} ) ;
123
136
124
137
describe ( 'mdel()' , ( ) => {
125
138
it ( 'lets us delete multiple keys' , async ( ) => {
126
- const keys = [ faker . datatype . string ( 20 ) , faker . datatype . string ( 20 ) ] ;
127
- const values = [ faker . datatype . string ( ) , faker . datatype . string ( ) ] ;
128
- await multiCache . mset (
129
- [
130
- [ keys [ 0 ] , values [ 0 ] ] ,
131
- [ keys [ 1 ] , values [ 1 ] ] ,
132
- ] ,
133
- defaultTtl ,
134
- ) ;
135
- await expect ( multiCache . mget ( ...keys ) ) . resolves . toStrictEqual ( values ) ;
139
+ const { keys } = await multiMset ( ) ;
136
140
await multiCache . mdel ( ...keys ) ;
137
- await expect ( multiCache . mget ( ...keys ) ) . resolves . toStrictEqual ( [
138
- undefined ,
139
- undefined ,
140
- ] ) ;
141
+ await expect ( memoryCache . get ( keys [ 0 ] ) ) . resolves . toBeUndefined ( ) ;
142
+ await expect ( memoryCache . get ( keys [ 1 ] ) ) . resolves . toBeUndefined ( ) ;
141
143
} ) ;
142
144
} ) ;
143
145
0 commit comments