@@ -541,9 +541,6 @@ describe("flagged account storage", () => {
541541} ) ;
542542
543543
544- import { loadFlaggedAccountsFromFile } from "../lib/storage/flagged-storage-file.js" ;
545- import { describeFlaggedSnapshot } from "../lib/storage/snapshot-inspectors.js" ;
546-
547544describe ( "flagged storage extracted helpers" , ( ) => {
548545 it ( "retries transient Windows read locks before parsing" , async ( ) => {
549546 const normalizeFlaggedStorage = vi . fn ( ( data ) => data as never ) ;
@@ -563,6 +560,42 @@ describe("flagged storage extracted helpers", () => {
563560 expect ( normalizeFlaggedStorage ) . toHaveBeenCalledWith ( { version : 1 , accounts : [ ] } ) ;
564561 } ) ;
565562
563+ it ( "rethrows after retry budget is exhausted for windows lock errors" , async ( ) => {
564+ const sleep = vi . fn ( async ( ) => { } ) ;
565+ const readFile = vi
566+ . fn ( )
567+ . mockRejectedValue ( Object . assign ( new Error ( "locked" ) , { code : "EBUSY" } ) ) ;
568+ await expect (
569+ loadFlaggedAccountsFromFile ( "flagged.json" , {
570+ readFile,
571+ normalizeFlaggedStorage : vi . fn ( ) ,
572+ sleep,
573+ } ) ,
574+ ) . rejects . toThrow ( "locked" ) ;
575+ expect ( readFile ) . toHaveBeenCalledTimes ( 4 ) ;
576+ expect ( sleep ) . toHaveBeenNthCalledWith ( 1 , 10 ) ;
577+ expect ( sleep ) . toHaveBeenNthCalledWith ( 2 , 20 ) ;
578+ expect ( sleep ) . toHaveBeenNthCalledWith ( 3 , 40 ) ;
579+ } ) ;
580+
581+ it ( "rethrows after retry budget is exhausted for windows lock errors" , async ( ) => {
582+ const sleep = vi . fn ( async ( ) => { } ) ;
583+ const readFile = vi
584+ . fn ( )
585+ . mockRejectedValue ( Object . assign ( new Error ( "locked" ) , { code : "EBUSY" } ) ) ;
586+ await expect (
587+ loadFlaggedAccountsFromFile ( "flagged.json" , {
588+ readFile,
589+ normalizeFlaggedStorage : vi . fn ( ) ,
590+ sleep,
591+ } ) ,
592+ ) . rejects . toThrow ( "locked" ) ;
593+ expect ( readFile ) . toHaveBeenCalledTimes ( 4 ) ;
594+ expect ( sleep ) . toHaveBeenNthCalledWith ( 1 , 10 ) ;
595+ expect ( sleep ) . toHaveBeenNthCalledWith ( 2 , 20 ) ;
596+ expect ( sleep ) . toHaveBeenNthCalledWith ( 3 , 40 ) ;
597+ } ) ;
598+
566599 it ( "propagates malformed JSON parse errors" , async ( ) => {
567600 await expect (
568601 loadFlaggedAccountsFromFile ( "flagged.json" , {
0 commit comments