@@ -571,18 +571,46 @@ function defineClientTests(getBase: () => string) {
571571 await page . goto ( BASE + '/' ) ;
572572 await waitForHydration ( page ) ;
573573
574- // SPA navigate to deferred page
575- await page . click ( 'a[href="/deferred"]' ) ;
574+ await page . evaluate ( ( ) => {
575+ window . __SPA_MARKER = true ;
576+ } ) ;
577+
578+ // Avoid hover prefetch so this exercises the deferred NDJSON navigation path.
579+ await page . evaluate ( ( ) => {
580+ document . querySelector < HTMLAnchorElement > ( 'a[href="/deferred"]' ) ?. click ( ) ;
581+ } ) ;
576582 await page . waitForFunction ( ( ) => document . querySelector ( '[data-testid="deferred-resolved"]' ) ) ;
577583
578584 const text = await page . textContent ( '[data-testid="deferred-resolved"]' ) ;
579585 expect ( text ) . toBe ( 'Count: 42' ) ;
586+ expect ( await page . evaluate ( ( ) => window . __SPA_MARKER ) ) . toBe ( true ) ;
580587 expect ( page . url ( ) ) . toBe ( BASE + '/deferred' ) ;
581588 } finally {
582589 await page . context ( ) . close ( ) ;
583590 }
584591 } ) ;
585592
593+ it ( 'deferred props: useId hydrates without mismatches' , async ( ) => {
594+ const page = await newPage ( ) ;
595+ try {
596+ await page . goto ( BASE + '/deferred' ) ;
597+ await waitForHydration ( page ) ;
598+ await page . waitForFunction ( ( ) => document . querySelector ( '[data-testid="deferred-resolved"]' ) ) ;
599+ await page . waitForFunction (
600+ ( ) =>
601+ document . querySelector < HTMLElement > ( '[data-testid="deferred-title"]' ) ?. dataset . clientId ,
602+ ) ;
603+
604+ const ids = await page . evaluate ( ( ) => {
605+ const title = document . querySelector < HTMLElement > ( '[data-testid="deferred-title"]' ) ! ;
606+ return { server : title . id , client : title . dataset . clientId } ;
607+ } ) ;
608+ expect ( ids . server ) . toBe ( ids . client ) ;
609+ } finally {
610+ await page . context ( ) . close ( ) ;
611+ }
612+ } ) ;
613+
586614 it ( 'SPA navigation updates document.title from head()' , async ( ) => {
587615 const page = await newPage ( ) ;
588616 try {
0 commit comments