@@ -48,7 +48,9 @@ describe('OpenSearch Configuration Client', () => {
48
48
} ,
49
49
} ;
50
50
51
- const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger ) ;
51
+ const cache = { } ;
52
+
53
+ const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger , cache ) ;
52
54
53
55
const value = await client . getConfig ( ) ;
54
56
@@ -77,7 +79,10 @@ describe('OpenSearch Configuration Client', () => {
77
79
} ) ,
78
80
} ,
79
81
} ;
80
- const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger ) ;
82
+
83
+ const cache = { } ;
84
+
85
+ const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger , cache ) ;
81
86
82
87
await expect ( client . getConfig ( ) ) . rejects . toThrowError ( ERROR_MESSAGE ) ;
83
88
} ) ;
@@ -99,11 +104,45 @@ describe('OpenSearch Configuration Client', () => {
99
104
} ,
100
105
} ;
101
106
102
- const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger ) ;
107
+ const cache = {
108
+ has : jest . fn ( ) . mockReturnValue ( false ) ,
109
+ set : jest . fn ( ) ,
110
+ } ;
111
+
112
+ const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger , cache ) ;
103
113
104
114
const value = await client . getEntityConfig ( 'config1' ) ;
105
115
106
116
expect ( value ) . toBe ( 'value1' ) ;
117
+ expect ( cache . set ) . toBeCalledWith ( 'config1' , 'value1' ) ;
118
+ } ) ;
119
+
120
+ it ( 'return configuration value from cache' , async ( ) => {
121
+ const opensearchClient = {
122
+ asInternalUser : {
123
+ get : jest . fn ( ) . mockImplementation ( ( ) => {
124
+ return {
125
+ body : {
126
+ _source : {
127
+ value : 'value1' ,
128
+ } ,
129
+ } ,
130
+ } ;
131
+ } ) ,
132
+ } ,
133
+ } ;
134
+
135
+ const cache = {
136
+ has : jest . fn ( ) . mockReturnValue ( true ) ,
137
+ get : jest . fn ( ) . mockReturnValue ( 'cachedValue' ) ,
138
+ } ;
139
+
140
+ const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger , cache ) ;
141
+
142
+ const value = await client . getEntityConfig ( 'config1' ) ;
143
+
144
+ expect ( value ) . toBe ( 'cachedValue' ) ;
145
+ expect ( cache . get ) . toBeCalledWith ( 'config1' ) ;
107
146
} ) ;
108
147
109
148
it ( 'throws error when input is empty' , async ( ) => {
@@ -121,7 +160,9 @@ describe('OpenSearch Configuration Client', () => {
121
160
} ,
122
161
} ;
123
162
124
- const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger ) ;
163
+ const cache = { } ;
164
+
165
+ const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger , cache ) ;
125
166
126
167
await expect ( client . getEntityConfig ( EMPTY_INPUT ) ) . rejects . toThrowError (
127
168
ERROR_MESSSAGE_FOR_EMPTY_INPUT
@@ -151,9 +192,16 @@ describe('OpenSearch Configuration Client', () => {
151
192
} ,
152
193
} ;
153
194
154
- const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger ) ;
195
+ const cache = {
196
+ has : jest . fn ( ) . mockReturnValue ( false ) ,
197
+ set : jest . fn ( ) ,
198
+ } ;
199
+
200
+ const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger , cache ) ;
155
201
156
202
await expect ( client . getEntityConfig ( 'config1' ) ) . rejects . toThrowError ( ERROR_MESSAGE ) ;
203
+
204
+ expect ( cache . set ) . toBeCalledWith ( 'config1' , undefined ) ;
157
205
} ) ;
158
206
} ) ;
159
207
@@ -167,11 +215,16 @@ describe('OpenSearch Configuration Client', () => {
167
215
} ,
168
216
} ;
169
217
170
- const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger ) ;
218
+ const cache = {
219
+ del : jest . fn ( ) ,
220
+ } ;
221
+
222
+ const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger , cache ) ;
171
223
172
224
const value = await client . deleteEntityConfig ( 'config1' ) ;
173
225
174
226
expect ( value ) . toBe ( 'config1' ) ;
227
+ expect ( cache . del ) . toBeCalledWith ( 'config1' ) ;
175
228
} ) ;
176
229
177
230
it ( 'throws error when input entity is empty' , async ( ) => {
@@ -183,7 +236,9 @@ describe('OpenSearch Configuration Client', () => {
183
236
} ,
184
237
} ;
185
238
186
- const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger ) ;
239
+ const cache = { } ;
240
+
241
+ const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger , cache ) ;
187
242
188
243
await expect ( client . deleteEntityConfig ( EMPTY_INPUT ) ) . rejects . toThrowError (
189
244
ERROR_MESSSAGE_FOR_EMPTY_INPUT
@@ -213,11 +268,16 @@ describe('OpenSearch Configuration Client', () => {
213
268
} ,
214
269
} ;
215
270
216
- const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger ) ;
271
+ const cache = {
272
+ del : jest . fn ( ) ,
273
+ } ;
274
+
275
+ const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger , cache ) ;
217
276
218
277
const value = await client . deleteEntityConfig ( 'config1' ) ;
219
278
220
279
expect ( value ) . toBe ( 'config1' ) ;
280
+ expect ( cache . del ) . toBeCalledWith ( 'config1' ) ;
221
281
} ) ;
222
282
223
283
it ( 'return deleted document entity when deletion fails due to document not found' , async ( ) => {
@@ -241,11 +301,16 @@ describe('OpenSearch Configuration Client', () => {
241
301
} ,
242
302
} ;
243
303
244
- const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger ) ;
304
+ const cache = {
305
+ del : jest . fn ( ) ,
306
+ } ;
307
+
308
+ const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger , cache ) ;
245
309
246
310
const value = await client . deleteEntityConfig ( 'config1' ) ;
247
311
248
312
expect ( value ) . toBe ( 'config1' ) ;
313
+ expect ( cache . del ) . toBeCalledWith ( 'config1' ) ;
249
314
} ) ;
250
315
251
316
it ( 'throws error when opensearch throws error' , async ( ) => {
@@ -271,7 +336,9 @@ describe('OpenSearch Configuration Client', () => {
271
336
} ,
272
337
} ;
273
338
274
- const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger ) ;
339
+ const cache = { } ;
340
+
341
+ const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger , cache ) ;
275
342
276
343
await expect ( client . deleteEntityConfig ( 'config1' ) ) . rejects . toThrowError ( ERROR_MESSAGE ) ;
277
344
} ) ;
@@ -287,11 +354,16 @@ describe('OpenSearch Configuration Client', () => {
287
354
} ,
288
355
} ;
289
356
290
- const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger ) ;
357
+ const cache = {
358
+ set : jest . fn ( ) ,
359
+ } ;
360
+
361
+ const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger , cache ) ;
291
362
292
363
const value = await client . updateEntityConfig ( 'config1' , 'newValue1' ) ;
293
364
294
365
expect ( value ) . toBe ( 'newValue1' ) ;
366
+ expect ( cache . set ) . toBeCalledWith ( 'config1' , 'newValue1' ) ;
295
367
} ) ;
296
368
297
369
it ( 'throws error when entity is empty ' , async ( ) => {
@@ -303,7 +375,9 @@ describe('OpenSearch Configuration Client', () => {
303
375
} ,
304
376
} ;
305
377
306
- const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger ) ;
378
+ const cache = { } ;
379
+
380
+ const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger , cache ) ;
307
381
308
382
await expect ( client . updateEntityConfig ( EMPTY_INPUT , 'newValue1' ) ) . rejects . toThrowError (
309
383
ERROR_MESSSAGE_FOR_EMPTY_INPUT
@@ -319,7 +393,9 @@ describe('OpenSearch Configuration Client', () => {
319
393
} ,
320
394
} ;
321
395
322
- const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger ) ;
396
+ const cache = { } ;
397
+
398
+ const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger , cache ) ;
323
399
324
400
await expect ( client . updateEntityConfig ( 'config1' , EMPTY_INPUT ) ) . rejects . toThrowError (
325
401
ERROR_MESSSAGE_FOR_EMPTY_INPUT
@@ -349,7 +425,9 @@ describe('OpenSearch Configuration Client', () => {
349
425
} ,
350
426
} ;
351
427
352
- const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger ) ;
428
+ const cache = { } ;
429
+
430
+ const client = new OpenSearchConfigurationClient ( opensearchClient , INDEX_NAME , logger , cache ) ;
353
431
354
432
await expect ( client . updateEntityConfig ( 'config1' , 'newValue1' ) ) . rejects . toThrowError (
355
433
ERROR_MESSAGE
0 commit comments