@@ -3393,6 +3393,70 @@ describe("chat session controls", () => {
33933393 expect ( state . setTab ) . toHaveBeenCalledWith ( "usage" ) ;
33943394 } ) ;
33953395
3396+ it ( "shows provider quota in the sidebar session switcher (regression #93041)" , ( ) => {
3397+ const { state } = createChatHeaderState ( ) ;
3398+ state . modelAuthStatusResult = {
3399+ ts : Date . now ( ) ,
3400+ providers : [
3401+ {
3402+ provider : "openai" ,
3403+ displayName : "Codex" ,
3404+ status : "ok" ,
3405+ profiles : [ { profileId : "codex" , type : "oauth" , status : "ok" } ] ,
3406+ usage : {
3407+ windows : [
3408+ { label : "3h" , usedPercent : 18 } ,
3409+ { label : "Week" , usedPercent : 72 } ,
3410+ ] ,
3411+ } ,
3412+ } ,
3413+ ] ,
3414+ } ;
3415+ const container = document . createElement ( "div" ) ;
3416+ render (
3417+ renderChatSessionSelect ( state , ( ) => undefined , {
3418+ sessionSwitcherOnly : true ,
3419+ surface : "sidebar" ,
3420+ } ) ,
3421+ container ,
3422+ ) ;
3423+
3424+ const quota = container . querySelector < HTMLAnchorElement > ( '[data-chat-provider-usage="true"]' ) ;
3425+ expect ( quota ?. textContent ?. replace ( / \s + / g, " " ) . trim ( ) ) . toBe ( "Usage 28%" ) ;
3426+
3427+ const row = container . querySelector ( ".chat-controls__session-row" ) ;
3428+ expect ( row ?. classList . contains ( "chat-controls__session-row--has-quota" ) ) . toBe ( true ) ;
3429+ } ) ;
3430+
3431+ it ( "hides provider quota when the sidebar session switcher is collapsed" , ( ) => {
3432+ const { state } = createChatHeaderState ( ) ;
3433+ state . modelAuthStatusResult = {
3434+ ts : Date . now ( ) ,
3435+ providers : [
3436+ {
3437+ provider : "openai" ,
3438+ displayName : "Codex" ,
3439+ status : "ok" ,
3440+ profiles : [ { profileId : "codex" , type : "oauth" , status : "ok" } ] ,
3441+ usage : {
3442+ windows : [ { label : "3h" , usedPercent : 18 } ] ,
3443+ } ,
3444+ } ,
3445+ ] ,
3446+ } ;
3447+ const container = document . createElement ( "div" ) ;
3448+ render (
3449+ renderChatSessionSelect ( state , ( ) => undefined , {
3450+ sessionSwitcherOnly : true ,
3451+ compact : true ,
3452+ surface : "sidebar" ,
3453+ } ) ,
3454+ container ,
3455+ ) ;
3456+
3457+ expect ( container . querySelector ( '[data-chat-provider-usage="true"]' ) ) . toBeNull ( ) ;
3458+ } ) ;
3459+
33963460 it ( "falls back to the selected agent's main session when no sessions exist yet" , ( ) => {
33973461 const { state } = createChatHeaderState ( ) ;
33983462 const onSwitchSession = vi . fn ( ) ;
0 commit comments