@@ -320,3 +320,58 @@ export const testSimpleKeyMappingHandler = async (
320320 expect ( await app . run ( "B" ) ) . toBe ( "B=2" ) ;
321321 expect ( await app . run ( "C" ) ) . toBe ( "C=3" ) ;
322322} ;
323+
324+ export const testCacheProviderClear = async (
325+ env : Env = { } ,
326+ cacheProvider : Service < CacheProvider > = MemoryCacheProvider ,
327+ ) : Promise < void > => {
328+ class TestClearCache {
329+ cursor_a = 0 ;
330+ cursor_b = 0 ;
331+
332+ a = $cache ( {
333+ key : ( args ) => args . name ,
334+ ttl : [ 5 , "seconds" ] ,
335+ handler : async ( user : { name : string } ) => {
336+ return `${ user . name } :${ this . cursor_a ++ } ` ;
337+ } ,
338+ } ) ;
339+
340+ b = $cache ( {
341+ key : ( args ) => args . name ,
342+ handler : async ( user : { name : string } ) => {
343+ return `${ user . name } :${ this . cursor_b ++ } ` ;
344+ } ,
345+ } ) ;
346+ }
347+
348+ const app = Alepha . create ( {
349+ env,
350+ } ) . with ( {
351+ provide : CacheProvider ,
352+ use : cacheProvider ,
353+ } ) ;
354+
355+ const test = app . inject ( TestClearCache ) ;
356+ const provider = app . inject ( CacheProvider ) ;
357+ await app . start ( ) ;
358+
359+ // Set some cache values
360+ expect ( await test . a ( { name : "A" } ) ) . toBe ( "A:0" ) ;
361+ expect ( await test . a ( { name : "A" } ) ) . toBe ( "A:0" ) ;
362+ expect ( await test . a ( { name : "B" } ) ) . toBe ( "B:1" ) ;
363+ expect ( await test . b ( { name : "C" } ) ) . toBe ( "C:0" ) ;
364+ expect ( await test . b ( { name : "C" } ) ) . toBe ( "C:0" ) ;
365+
366+ // Verify cache is working
367+ expect ( await test . a ( { name : "A" } ) ) . toBe ( "A:0" ) ;
368+ expect ( await test . b ( { name : "C" } ) ) . toBe ( "C:0" ) ;
369+
370+ // Clear all cache
371+ await provider . clear ( ) ;
372+
373+ // Verify cache was cleared - new values should be generated
374+ expect ( await test . a ( { name : "A" } ) ) . toBe ( "A:2" ) ;
375+ expect ( await test . a ( { name : "B" } ) ) . toBe ( "B:3" ) ;
376+ expect ( await test . b ( { name : "C" } ) ) . toBe ( "C:1" ) ;
377+ } ;
0 commit comments