@@ -272,3 +272,36 @@ test('can require CJS module that is not bundled', async ({ simple }) => {
272
272
expect ( parsedBody . notBundledCJSModule . isBundled ) . toEqual ( false )
273
273
expect ( parsedBody . bundledCJSModule . isBundled ) . toEqual ( true )
274
274
} )
275
+
276
+ test ( 'next/after callback is executed and finishes' , async ( { page, simple } ) => {
277
+ test . skip ( ! nextVersionSatisfies ( '>=15.0.0' ) , 'This test is only for Next.js 15+' )
278
+
279
+ await page . goto ( `${ simple . url } /after/check` )
280
+ const pageInfoLocator1 = await page . locator ( '#page-info' )
281
+ const pageInfo1 = JSON . parse ( ( await pageInfoLocator1 . textContent ( ) ) ?? '{}' )
282
+
283
+ expect ( typeof pageInfo1 ?. timestamp , 'Check page should have timestamp' ) . toBe ( 'number' )
284
+
285
+ await new Promise ( ( resolve ) => setTimeout ( resolve , 2000 ) )
286
+
287
+ await page . goto ( `${ simple . url } /after/check` )
288
+ const pageInfoLocator2 = await page . locator ( '#page-info' )
289
+ const pageInfo2 = JSON . parse ( ( await pageInfoLocator2 . textContent ( ) ) ?? '{}' )
290
+
291
+ expect ( typeof pageInfo2 ?. timestamp , 'Check page should have timestamp' ) . toBe ( 'number' )
292
+
293
+ expect ( pageInfo2 . timestamp , 'Check page should be cached' ) . toBe ( pageInfo1 . timestamp )
294
+
295
+
296
+ await page . goto ( `${ simple . url } /after/trigger` )
297
+
298
+ // wait for next/after to trigger revalidation of check page
299
+ await new Promise ( ( resolve ) => setTimeout ( resolve , 5000 ) )
300
+
301
+ await page . goto ( `${ simple . url } /after/check` )
302
+ const pageInfoLocator3 = await page . locator ( '#page-info' )
303
+ const pageInfo3 = JSON . parse ( ( await pageInfoLocator3 . textContent ( ) ) ?? '{}' )
304
+
305
+ expect ( typeof pageInfo3 ?. timestamp , 'Check page should have timestamp' ) . toBe ( 'number' )
306
+ expect ( pageInfo3 . timestamp , 'Check page should be invalidated with newer timestamp' ) . toBeGreaterThan ( pageInfo1 . timestamp )
307
+ } )
0 commit comments