@@ -14,6 +14,7 @@ import {
1414 resolveProjectStatusIndicator ,
1515 resolveSidebarNewThreadSeedContext ,
1616 resolveSidebarNewThreadEnvMode ,
17+ resolveSidebarStageBadgeLabel ,
1718 resolveThreadRowClassName ,
1819 resolveThreadStatusPill ,
1920 shouldClearThreadSelectionOnMouseDown ,
@@ -36,6 +37,44 @@ import {
3637
3738const localEnvironmentId = EnvironmentId . make ( "environment-local" ) ;
3839
40+ describe ( "resolveSidebarStageBadgeLabel" , ( ) => {
41+ it ( "returns Nightly for nightly primary server versions" , ( ) => {
42+ expect (
43+ resolveSidebarStageBadgeLabel ( {
44+ primaryServerVersion : "0.0.28-nightly.20260616.12" ,
45+ fallbackStageLabel : "Alpha" ,
46+ } ) ,
47+ ) . toBe ( "Nightly" ) ;
48+ } ) ;
49+
50+ it ( "returns the fallback label for stable primary server versions" , ( ) => {
51+ expect (
52+ resolveSidebarStageBadgeLabel ( {
53+ primaryServerVersion : "0.0.27" ,
54+ fallbackStageLabel : "Alpha" ,
55+ } ) ,
56+ ) . toBe ( "Alpha" ) ;
57+ } ) ;
58+
59+ it ( "returns the fallback label when the primary server version is missing" , ( ) => {
60+ expect (
61+ resolveSidebarStageBadgeLabel ( {
62+ primaryServerVersion : null ,
63+ fallbackStageLabel : "Dev" ,
64+ } ) ,
65+ ) . toBe ( "Dev" ) ;
66+ } ) ;
67+
68+ it ( "returns the fallback label for malformed nightly prerelease versions" , ( ) => {
69+ expect (
70+ resolveSidebarStageBadgeLabel ( {
71+ primaryServerVersion : "0.0.28-nightly.20260616" ,
72+ fallbackStageLabel : "Alpha" ,
73+ } ) ,
74+ ) . toBe ( "Alpha" ) ;
75+ } ) ;
76+ } ) ;
77+
3978function makeLatestTurn ( overrides ?: {
4079 completedAt ?: string | null ;
4180 startedAt ?: string | null ;
0 commit comments