@@ -1121,23 +1121,28 @@ extension StatusMenuPersistentRefreshTests {
11211121 updatedAt: updatedAt)
11221122 }
11231123
1124- // Claude begins refreshing: freeze its pre-refresh card (21% used -> "79% left") .
1124+ // The snapshot helper supplies every enabled provider even for a provider-scoped refresh .
11251125 controller. store. snapshots [ . claude] = quotaSnapshot ( usedPercent: 21 , updatedAt: now)
1126+ controller. store. snapshots [ . codex] = quotaSnapshot ( usedPercent: 15 , updatedAt: now)
11261127 let claudeFrozen = try #require( controller. menuCardModel ( for: . claude) )
1127- monitor. beginManualRefresh ( frozenModels: [ . claude: claudeFrozen] , provider: . claude)
1128+ let codexBeforeItsRefresh = try #require( controller. menuCardModel ( for: . codex) )
1129+ monitor. beginManualRefresh (
1130+ frozenModels: [ . claude: claudeFrozen, . codex: codexBeforeItsRefresh] ,
1131+ provider: . claude)
11281132
1129- // Claude's snapshot moves mid-refresh; then Codex begins and re-supplies Claude's *current*
1130- // model, because frozenManualRefreshMenuCardModels captures every enabled provider.
1133+ // Each provider must freeze the card visible when its own refresh starts.
11311134 controller. store. snapshots [ . claude] = quotaSnapshot ( usedPercent: 65 , updatedAt: now. addingTimeInterval ( 1 ) )
1135+ controller. store. snapshots [ . codex] = quotaSnapshot ( usedPercent: 42 , updatedAt: now. addingTimeInterval ( 1 ) )
11321136 let claudeMidRefresh = try #require( controller. menuCardModel ( for: . claude) )
11331137 let codexFrozen = try #require( controller. menuCardModel ( for: . codex) )
11341138 monitor. beginManualRefresh (
11351139 frozenModels: [ . claude: claudeMidRefresh, . codex: codexFrozen] ,
11361140 provider: . codex)
11371141
1138- // Claude must still show its pre-refresh card, not the mid-refresh one Codex's begin supplied.
11391142 let shownClaude = monitor. model ( for: . claude, fallback: claudeMidRefresh)
1143+ let shownCodex = monitor. model ( for: . codex, fallback: codexFrozen)
11401144 #expect( shownClaude. metrics. first? . percentLabel == " 79% left " )
1145+ #expect( shownCodex. metrics. first? . percentLabel == " 58% left " )
11411146
11421147 // Ending Codex leaves Claude frozen; ending Claude clears it.
11431148 monitor. endManualRefresh ( for: . codex)
0 commit comments