@@ -219,7 +219,7 @@ describe('Cache plugin (memory)', () => {
219219 } ,
220220 } ) ) . resolves . toHaveLength ( 1 ) ;
221221
222- vi . advanceTimersByTime ( 60000 ) ;
222+ vi . advanceTimersByTime ( 61000 ) ;
223223
224224 await expect ( extDb . user . findFirst ( {
225225 where : {
@@ -335,12 +335,77 @@ describe('Cache plugin (memory)', () => {
335335 name : null ,
336336 } ) ;
337337
338+ expect ( extDb . $cache . status ) . toBe ( 'stale' ) ;
339+ await extDb . $cache . revalidation ;
340+
341+ await expect ( extDb . user . findFirst ( {
342+ where : {
343+ id : user . id ,
344+ } ,
345+
346+ cache : {
347+ swr : 60 ,
348+ } ,
349+ } ) ) . resolves . toMatchObject ( {
350+ name : 'newname' ,
351+ } ) ;
352+ } ) ;
353+
354+ it ( 'respects ttl and swr simultaneously' , async ( ) => {
355+ const extDb = db . $use ( defineCachePlugin ( {
356+ provider : new MemoryCache ( ) ,
357+ } ) ) ;
358+
359+ const user = await extDb . user . create ( {
360+ data : {
361+ email : 'test@email.com' ,
362+ } ,
363+ } ) ;
364+
365+ await extDb . user . findFirst ( {
366+ where : {
367+ id : user . id ,
368+ } ,
369+
370+ cache : {
371+ ttl : 60 ,
372+ swr : 60 ,
373+ } ,
374+ } ) ;
375+
376+ await extDb . user . update ( {
377+ data : {
378+ name : 'newname' ,
379+ } ,
380+
381+ where : {
382+ id : user . id ,
383+ } ,
384+ } ) ;
385+
386+ await expect ( extDb . user . findFirst ( {
387+ where : {
388+ id : user . id ,
389+ } ,
390+
391+ cache : {
392+ ttl : 60 ,
393+ swr : 60 ,
394+ } ,
395+ } ) ) . resolves . toMatchObject ( {
396+ name : null ,
397+ } ) ;
398+
399+ expect ( extDb . $cache . status ) . toBe ( 'hit' ) ;
400+ vi . advanceTimersByTime ( 65000 ) ;
401+
338402 await expect ( extDb . user . findFirst ( {
339403 where : {
340404 id : user . id ,
341405 } ,
342406
343407 cache : {
408+ ttl : 60 ,
344409 swr : 60 ,
345410 } ,
346411 } ) ) . resolves . toMatchObject ( {
@@ -356,6 +421,7 @@ describe('Cache plugin (memory)', () => {
356421 } ,
357422
358423 cache : {
424+ ttl : 60 ,
359425 swr : 60 ,
360426 } ,
361427 } ) ) . resolves . toMatchObject ( {
@@ -801,4 +867,29 @@ describe('Cache plugin (memory)', () => {
801867 title : 'title' ,
802868 } ) ;
803869 } ) ;
870+
871+ it ( 'handles edge cases' , async ( ) => {
872+ const extDb = db . $use ( defineCachePlugin ( {
873+ provider : new MemoryCache ( ) ,
874+ } ) ) ;
875+
876+ await expect ( extDb . user . findMany ( {
877+ cache : {
878+ ttl : 0 ,
879+ } ,
880+ } ) ) . rejects . toThrow ( 'Invalid findMany' ) ;
881+
882+ await expect ( extDb . user . findMany ( {
883+ cache : {
884+ swr : 0 ,
885+ } ,
886+ } ) ) . rejects . toThrow ( 'Invalid findMany' ) ;
887+
888+ await expect ( extDb . user . findMany ( {
889+ cache : {
890+ ttl : 0 ,
891+ swr : 0 ,
892+ } ,
893+ } ) ) . rejects . toThrow ( 'Invalid findMany' ) ;
894+ } ) ;
804895} ) ;
0 commit comments