@@ -281,24 +281,29 @@ describe('createMemoizeDict', () => {
281
281
return mockData ;
282
282
} )
283
283
284
- const memoizeDict = createMemoizeDict ( {
285
- config : new Proxy ( { } ,
286
- {
287
- get : ( _ , key : string ) => ( {
288
- data : async ( ) => {
289
- return dataFunc ( key ) ;
290
- } ,
291
- } ) ,
292
- }
293
- ) ,
284
+ const memoizeDict = createMemoizeDict < { label : string ; value : number ; parent : number ; } > ( {
285
+ config : new Proxy ( { } , {
286
+ get : ( _ , key : string ) => ( {
287
+ data : async ( ) => {
288
+ return dataFunc ( key ) ;
289
+ } ,
290
+ } ) ,
291
+ } ) ,
294
292
} )
295
293
296
- expect ( memoizeDict ( 'test' ) . data ) . toBeUndefined ( ) ;
297
- while ( ! memoizeDict ( 'test' ) . data ) {
294
+ while ( ! memoizeDict ( 'test-create' ) . data ) {
298
295
await new Promise ( ( resolve ) => setTimeout ( resolve , 1 ) ) ;
299
296
}
300
- expect ( memoizeDict ( 'test' ) . data ) . toBe ( mockData ) ;
301
- expect ( memoizeDict ( 'test' ) . tree ) . toEqual ( mockDataTree ) ;
302
- expect ( dataFunc ) . toBeCalledTimes ( 1 ) ;
297
+ expect ( memoizeDict ( 'test-create' ) . data ) . toBe ( mockData ) ;
298
+ expect ( memoizeDict ( 'test-create' ) . tree ) . toEqual ( mockDataTree ) ;
299
+ expect ( await memoizeDict ( 'test-create' ) . fetch ( ) ) . toBe ( mockData ) ; // 不会再次调用 dataFunc,也就是从缓存中取
300
+ expect ( memoizeDict ( 'test-create' ) . itemByValue ( 11 ) ) . toBe ( mockData [ 1 ] ) ;
301
+ expect ( memoizeDict ( 'test-create' ) . labelByValue ( 11 ) ) . toBe ( 'Item 1-1' ) ;
302
+ expect ( memoizeDict ( 'test-create' ) . labelsByValues ( [ 11 , 111 ] ) ) . toEqual ( [ 'Item 1-1' , 'Item 1-1-1' ] ) ;
303
+ expect ( memoizeDict ( 'test-create' ) . treeLabelByValue ( 111 ) ) . toBe ( 'Item 1-Item 1-1-Item 1-1-1' ) ;
304
+
305
+ expect ( await memoizeDict ( 'test-create' ) . load ( ) ) . toBe ( mockData ) ; // 会再次调用 dataFunc,并更新缓存
306
+ expect ( memoizeDict ( 'test-create' ) . data ) . toBeUndefined ( ) ;
307
+ expect ( dataFunc ) . toBeCalledTimes ( 2 ) ;
303
308
} )
304
309
} )
0 commit comments