@@ -39,12 +39,12 @@ describe('getHtmlHandler', async () => {
3939 lastRequestedPath : '' ,
4040 } as unknown as DevServerContext
4141
42- test ( 'sets lastRequestedPath to the rendering URL ' , async ( ) => {
42+ test ( 'sets lastRequestedPath when Sec-Fetch-Mode is navigate ' , async ( ) => {
4343 const handler = getHtmlHandler ( theme , ctx )
4444
4545 expect ( ctx . lastRequestedPath ) . toStrictEqual ( '' )
4646
47- const event = createH3Event ( 'GET' , '/search?q=foo&options%5Bprefix%5D=last' )
47+ const event = createH3Event ( 'GET' , '/search?q=foo&options%5Bprefix%5D=last' , { 'sec-fetch-mode' : 'navigate' } )
4848
4949 vi . mocked ( render ) . mockResolvedValueOnce (
5050 new Response ( '' , {
@@ -60,6 +60,24 @@ describe('getHtmlHandler', async () => {
6060 expect ( ctx . lastRequestedPath ) . toStrictEqual ( '/search?q=foo&options%5Bprefix%5D=last' )
6161 } )
6262
63+ test ( 'does not update lastRequestedPath when Sec-Fetch-Mode is not navigate' , async ( ) => {
64+ const handler = getHtmlHandler ( theme , ctx )
65+ ctx . lastRequestedPath = '/previous-page'
66+
67+ const event = createH3Event ( 'GET' , '/search/suggest?q=foo&resources[type]=product' , { 'sec-fetch-mode' : 'cors' } )
68+
69+ vi . mocked ( render ) . mockResolvedValueOnce (
70+ new Response ( '' , {
71+ status : 200 ,
72+ headers : { 'x-request-id' : 'test-request-id' } ,
73+ } ) ,
74+ )
75+
76+ await handler ( event )
77+
78+ expect ( ctx . lastRequestedPath ) . toStrictEqual ( '/previous-page' )
79+ } )
80+
6381 test ( 'the development server session recovers when a theme id mismatch occurs' , async ( ) => {
6482 // Given
6583 const handler = getHtmlHandler ( theme , ctx )
0 commit comments