@@ -116,7 +116,7 @@ test.describe('workspace transport baseline', () => {
116116 } ) ;
117117 expect ( Object . values ( baseline . initialCounts ) . every ( ( count ) => count >= 1 ) ) . toBe ( true ) ;
118118 expect ( baseline . countsBeforeNextPoll ) . toEqual ( baseline . initialCounts ) ;
119- expect ( baseline . countsAfterNextPoll ) . toEqual ( incrementCounts ( baseline . initialCounts ) ) ;
119+ expectPollCountsToAdvanceFrom ( baseline . countsAfterNextPoll , baseline . initialCounts ) ;
120120 } ) ;
121121
122122 test ( 'terminal and agent streams still arrive over /ws' , async ( { page } ) => {
@@ -169,7 +169,7 @@ test.describe('workspace transport baseline', () => {
169169 const baseline = await observeGitIndexInvalidationBaseline ( page ) ;
170170
171171 expect ( baseline . countsAfterGitAdd ) . toBeGreaterThan ( baseline . countsAfterFileWrite ) ;
172- expect ( baseline . workspacePath ) . toBe ( WORKSPACE_PATH ) ;
172+ expect ( normalizePathForComparison ( baseline . workspacePath ) ) . toBe ( normalizePathForComparison ( WORKSPACE_PATH ) ) ;
173173 } ) ;
174174} ) ;
175175
@@ -184,7 +184,7 @@ async function observePollingBaseline(page: Page): Promise<PollingBaseline> {
184184
185185 await page . waitForTimeout ( 3000 ) ;
186186 const countsBeforeNextPoll = snapshotCounts ( probe . counts ) ;
187- await waitForCounts ( probe . counts , incrementCounts ( initialCounts ) ) ;
187+ await waitForCountsAtLeast ( probe . counts , incrementCounts ( initialCounts ) ) ;
188188 const countsAfterNextPoll = snapshotCounts ( probe . counts ) ;
189189
190190 return {
@@ -608,6 +608,13 @@ function snapshotCounts(counts: PollCounts): PollCounts {
608608 } ;
609609}
610610
611+ function expectPollCountsToAdvanceFrom ( actual : PollCounts , baseline : PollCounts ) {
612+ expect ( actual . git_status ) . toBeGreaterThan ( baseline . git_status ) ;
613+ expect ( actual . git_changes ) . toBeGreaterThan ( baseline . git_changes ) ;
614+ expect ( actual . worktree_list ) . toBeGreaterThan ( baseline . worktree_list ) ;
615+ expect ( actual . workspace_tree ) . toBeGreaterThan ( baseline . workspace_tree ) ;
616+ }
617+
611618function rpcCommand ( url : string ) {
612619 return url . split ( '/api/rpc/' ) [ 1 ] ?. split ( '?' ) [ 0 ] ?? '' ;
613620}
@@ -620,14 +627,18 @@ function isWindowsNativeTarget(target: WorkspaceHandle['target']) {
620627 return process . platform === 'win32' && target . type === 'native' ;
621628}
622629
630+ function normalizePathForComparison ( value : string ) {
631+ return value . replaceAll ( '\\' , '/' ) . replace ( / \/ + $ / u, '' ) . toLowerCase ( ) ;
632+ }
633+
623634function buildTerminalProbeInput ( target : WorkspaceHandle [ 'target' ] ) {
624635 return isWindowsNativeTarget ( target )
625636 ? 'echo transport-terminal\r'
626637 : 'printf "transport-terminal\\n"\r' ;
627638}
628639
629640function buildAgentProbeCommand ( target : WorkspaceHandle [ 'target' ] ) {
630- return isWindowsNativeTarget ( target ) ? 'findstr "^" ' : 'cat' ;
641+ return isWindowsNativeTarget ( target ) ? 'more ' : 'cat' ;
631642}
632643
633644function countTrackedSockets ( tracker : TransportTrackerSnapshot , fragment : string ) {
0 commit comments