Add instant navigations eval with browser-based testing via Next.js testing API#62
Open
Add instant navigations eval with browser-based testing via Next.js testing API#62
Conversation
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
This reverts commit c0b0784.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
agent-040-instant-navigations, an eval that tasks the agent with making client-side navigation to a products page instant usingunstable_instant,"use cache", and<Suspense>.The eval validates three things: a structural check for the
unstable_instantexport on the products route, a structural check thatgetProductsis imported from@/lib/data, and a browser-based E2E test using Next.js's instant navigation testing API (window.__EXPERIMENTAL_NEXT_TESTING__.navigation.lock()/unlock()). The lock blocks dynamic data from streaming into the UI so the test can deterministically assert that the static shell (heading) renders immediately, then after unlock verifies product data streams in.Browser automation in the Vercel sandbox (Amazon Linux 2023) requires
@sparticuz/chromiumfor a serverless-compatible Chromium binary pluspuppeteer-coreto drive it. The experiment setup installs system dependencies viadnf(nspr, nss, atk, mesa-libgbm, etc.) and setsVERCEL=1before dynamically importing@sparticuz/chromiumso it extracts its bundled AL2023 libraries to/tmp. Theinstant(page, fn)helper wraps the lock/unlock lifecycle following the pattern fromnavigation-testing-lock.js.The experiment config injects the instant navigations documentation into
node_modules/next/dist/docs/alongsideAGENTS.md,CLAUDE.md, andGEMINI.md. Tested at 50% pass rate (1/2 completed runs passed; failures are model failures where the agent omits theunstable_instantexport).