From 8f7d24fab72044628db189b54cff85ff97a9a914 Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Fri, 22 Sep 2023 23:23:08 +0200 Subject: [PATCH 1/7] Ensure next-swc-loader types are used (#55846) Uses satisfies to check the next-swc-loader options passed. Found a few mismatches and implicit default, made sure they match up the same default values but set explicitly. This will need a thorough double-check. --- packages/next/src/build/swc/options.ts | 16 ++++--- packages/next/src/build/webpack-config.ts | 43 +++++++++++++------ .../build/webpack/loaders/next-swc-loader.ts | 24 ++++++++++- 3 files changed, 61 insertions(+), 22 deletions(-) diff --git a/packages/next/src/build/swc/options.ts b/packages/next/src/build/swc/options.ts index a9989b365289b..fa91033272141 100644 --- a/packages/next/src/build/swc/options.ts +++ b/packages/next/src/build/swc/options.ts @@ -5,7 +5,7 @@ import type { StyledComponentsConfig, } from '../../server/config-shared' -type BundleType = 'client' | 'server' | 'default' +export type BundleType = 'client' | 'server' | 'default' const nextDistPath = /(next[\\/]dist[\\/]shared[\\/]lib)|(next[\\/]dist[\\/]client)|(next[\\/]dist[\\/]pages)/ @@ -54,15 +54,15 @@ function getBaseSWCOptions({ hasReactRefresh: boolean globalWindow: boolean modularizeImports?: NextConfig['modularizeImports'] - swcPlugins: ExperimentalConfig['swcPlugins'] compilerOptions: NextConfig['compiler'] + swcPlugins: ExperimentalConfig['swcPlugins'] + isServerActionsEnabled?: ExperimentalConfig['serverActions'] resolvedBaseUrl?: string jsConfig: any bundleTarget: BundleType swcCacheDir?: string isServerLayer?: boolean hasServerComponents?: boolean - isServerActionsEnabled?: boolean }) { const parserConfig = getParserOptions({ filename, jsConfig }) const paths = jsConfig?.compilerOptions?.paths @@ -322,7 +322,7 @@ export function getLoaderSWCOptions({ isServerLayer, isServerActionsEnabled, optimizeBarrelExports, - bundleTarget = 'client', + bundleTarget, }: // This is not passed yet as "paths" resolving is handled by webpack currently. // resolvedBaseUrl, { @@ -330,7 +330,7 @@ export function getLoaderSWCOptions({ development: boolean isServer: boolean pagesDir?: string - appDir: string + appDir?: string isPageFile: boolean hasReactRefresh: boolean optimizeServerReact?: boolean @@ -341,14 +341,16 @@ export function getLoaderSWCOptions({ swcPlugins: ExperimentalConfig['swcPlugins'] compilerOptions: NextConfig['compiler'] jsConfig: any - supportedBrowsers: string[] + supportedBrowsers: string[] | undefined swcCacheDir: string relativeFilePathFromRoot: string bundleTarget: BundleType hasServerComponents?: boolean isServerLayer: boolean isServerActionsEnabled?: boolean - optimizeBarrelExports?: string[] + optimizeBarrelExports?: { + wildcard: boolean + } }) { let baseOptions: any = getBaseSWCOptions({ filename, diff --git a/packages/next/src/build/webpack-config.ts b/packages/next/src/build/webpack-config.ts index 7da2a44c160c3..aa8701a8998f9 100644 --- a/packages/next/src/build/webpack-config.ts +++ b/packages/next/src/build/webpack-config.ts @@ -77,6 +77,7 @@ import { getBabelConfigFile } from './get-babel-config-file' import { defaultOverrides } from '../server/require-hook' import { needsExperimentalReact } from '../lib/needs-experimental-react' import { getDefineEnvPlugin } from './webpack/plugins/define-env-plugin' +import { SWCLoaderOptions } from './webpack/loaders/next-swc-loader' type ExcludesFalse = (x: T | false) => x is T type ClientEntries = { @@ -680,7 +681,12 @@ export default async function getBaseWebpackConfig( } let swcTraceProfilingInitialized = false - const getSwcLoader = (extraOptions?: any) => { + const getSwcLoader = ( + extraOptions: Partial & { + bundleTarget: SWCLoaderOptions['bundleTarget'] + isServerLayer: SWCLoaderOptions['isServerLayer'] + } + ) => { if ( config?.experimental?.swcTraceProfiling && !swcTraceProfilingInitialized @@ -709,12 +715,14 @@ export default async function getBaseWebpackConfig( supportedBrowsers, swcCacheDir: path.join(dir, config?.distDir ?? '.next', 'cache', 'swc'), ...extraOptions, - }, + } satisfies SWCLoaderOptions, } } const defaultLoaders = { - babel: useSWCLoader ? getSwcLoader() : getBabelLoader(), + babel: useSWCLoader + ? getSwcLoader({ bundleTarget: 'client', isServerLayer: false }) + : getBabelLoader(), } const swcLoaderForServerLayer = hasServerComponents @@ -731,13 +739,21 @@ export default async function getBaseWebpackConfig( : [] const swcLoaderForMiddlewareLayer = useSWCLoader - ? getSwcLoader({ hasServerComponents: false, bundleTarget: 'default' }) + ? getSwcLoader({ + isServerLayer: false, + hasServerComponents: false, + bundleTarget: 'default', + }) : // When using Babel, we will have to use SWC to do the optimization // for middleware to tree shake the unused default optimized imports like "next/server". // This will cause some performance overhead but // acceptable as Babel will not be recommended. [ - getSwcLoader({ hasServerComponents: false, bundleTarget: 'default' }), + getSwcLoader({ + isServerLayer: false, + hasServerComponents: false, + bundleTarget: 'default', + }), getBabelLoader(), ] @@ -761,6 +777,7 @@ export default async function getBaseWebpackConfig( getSwcLoader({ hasServerComponents, isServerLayer: false, + bundleTarget: 'client', }), ] : // When using Babel, we will have to add the SWC loader @@ -770,6 +787,7 @@ export default async function getBaseWebpackConfig( [ getSwcLoader({ isServerLayer: false, + bundleTarget: 'client', }), getBabelLoader(), ] @@ -781,14 +799,11 @@ export default async function getBaseWebpackConfig( // be performed. const loaderForAPIRoutes = hasServerComponents && useSWCLoader - ? { - loader: 'next-swc-loader', - options: { - ...getSwcLoader().options, - bundleTarget: 'default', - hasServerComponents: false, - }, - } + ? getSwcLoader({ + isServerLayer: false, + bundleTarget: 'default', + hasServerComponents: false, + }) : defaultLoaders.babel const pageExtensions = config.pageExtensions @@ -1806,6 +1821,8 @@ export default async function getBaseWebpackConfig( return [ getSwcLoader({ + isServerLayer: false, + bundleTarget: 'client', hasServerComponents: false, optimizeBarrelExports: { wildcard: isFromWildcardExport, diff --git a/packages/next/src/build/webpack/loaders/next-swc-loader.ts b/packages/next/src/build/webpack/loaders/next-swc-loader.ts index 6b23d7e7e24f4..253ef9e39035a 100644 --- a/packages/next/src/build/webpack/loaders/next-swc-loader.ts +++ b/packages/next/src/build/webpack/loaders/next-swc-loader.ts @@ -26,10 +26,30 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +import type { NextConfig } from '../../../../types' import { isWasm, transform } from '../../swc' -import { getLoaderSWCOptions } from '../../swc/options' +import { type BundleType, getLoaderSWCOptions } from '../../swc/options' import path, { isAbsolute } from 'path' +export interface SWCLoaderOptions { + rootDir: string + isServer: boolean + pagesDir?: string + appDir?: string + hasReactRefresh: boolean + optimizeServerReact?: boolean + nextConfig: NextConfig + jsConfig: any + supportedBrowsers: string[] | undefined + swcCacheDir: string + bundleTarget: BundleType + hasServerComponents?: boolean + isServerLayer: boolean + optimizeBarrelExports?: { + wildcard: boolean + } +} + async function loaderTransform( this: any, parentTrace: any, @@ -39,7 +59,7 @@ async function loaderTransform( // Make the loader async const filename = this.resourcePath - let loaderOptions = this.getOptions() || {} + let loaderOptions: SWCLoaderOptions = this.getOptions() || {} const { isServer, From b0aecccaa265c02f371d5fc7d72081a3a5c64cf8 Mon Sep 17 00:00:00 2001 From: Justin Ridgewell Date: Fri, 22 Sep 2023 17:37:48 -0400 Subject: [PATCH 2/7] Allow filtering individual test cases inside test files (#55786) ### What? Updates `run-test.js` to allow running individual test cases inside a test file. ### Why? So that we can dramatically increase Turbopack's test coverage. Turbopack has implemented most (but not all) necessary features from the webpack bundles. But a single failing test case would prevent us from running any case inside a test file. With case filtering, we're able to run the cases we know will pass and prevent regressions on those. ### How? Case filtering is only exposed via the `NEXT_EXTERNAL_TESTS_FILTERS` ENV, which points to a JSON file containing a map of test files with the test cases inside those files that are known to pass. The known-passing test cases can be updated after Turbopack's daily integration test run by running `test/build-turbopack-tests-manifest.js`, which will update the `test/turbopack-tests-manifest.json` manifest. Closes WEB-1640 Co-authored-by: Tobias Koppers <1365881+sokra@users.noreply.github.com> --- .github/workflows/build_and_test.yml | 9 +- run-tests.js | 311 +- test/build-turbopack-tests-manifest.js | 128 + .../build-output/test/index.test.js | 7 +- test/turbopack-tests-manifest.js | 356 - test/turbopack-tests-manifest.json | 14363 ++++++++++++++++ 6 files changed, 14682 insertions(+), 492 deletions(-) create mode 100644 test/build-turbopack-tests-manifest.js delete mode 100644 test/turbopack-tests-manifest.js create mode 100644 test/turbopack-tests-manifest.json diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 3ba9bd51e6ddf..62e123c2212a7 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -33,9 +33,6 @@ jobs: uses: ./.github/workflows/build_reusable.yml with: skipInstallBuild: 'yes' - # Ensure all of the tests listed in turbopack test manifest actually exists; - # i.e after removing an actual test and if it still stays in the manifest - afterBuild: node -e 'require(\"./test/turbopack-tests-manifest.js\").verifyEnabledTestPath()' secrets: inherit build-next: @@ -137,7 +134,7 @@ jobs: uses: ./.github/workflows/build_reusable.yml with: skipForDocsOnly: 'yes' - afterBuild: RUST_BACKTRACE=0 NEXT_EXTERNAL_TESTS_FILTERS="$(pwd)/test/turbopack-tests-manifest.js" TURBOPACK=1 NEXT_E2E_TEST_TIMEOUT=240000 NEXT_TEST_MODE=dev node run-tests.js --test-pattern '^(test\/development)/.*\.test\.(js|jsx|ts|tsx)$' --timings -g ${{ matrix.group }}/5 -c ${TEST_CONCURRENCY} + afterBuild: RUST_BACKTRACE=0 NEXT_EXTERNAL_TESTS_FILTERS="$(pwd)/test/turbopack-tests-manifest.json" TURBOPACK=1 NEXT_E2E_TEST_TIMEOUT=240000 NEXT_TEST_MODE=dev node run-tests.js --test-pattern '^(test\/development)/.*\.test\.(js|jsx|ts|tsx)$' --timings -g ${{ matrix.group }}/5 -c ${TEST_CONCURRENCY} secrets: inherit test-turbopack-integration: @@ -151,7 +148,7 @@ jobs: with: nodeVersion: 16 skipForDocsOnly: 'yes' - afterBuild: RUST_BACKTRACE=0 NEXT_EXTERNAL_TESTS_FILTERS="$(pwd)/test/turbopack-tests-manifest.js" TURBOPACK=1 node run-tests.js --timings -g ${{ matrix.group }}/5 -c ${TEST_CONCURRENCY} --type integration + afterBuild: RUST_BACKTRACE=0 NEXT_EXTERNAL_TESTS_FILTERS="$(pwd)/test/turbopack-tests-manifest.json" TURBOPACK=1 node run-tests.js --timings -g ${{ matrix.group }}/5 -c ${TEST_CONCURRENCY} --type integration secrets: inherit # --type production also runs tests/e2e @@ -166,7 +163,7 @@ jobs: with: nodeVersion: 16 skipForDocsOnly: 'yes' - afterBuild: RUST_BACKTRACE=0 NEXT_EXTERNAL_TESTS_FILTERS="$(pwd)/test/turbopack-tests-manifest.js" TURBOPACK=1 NEXT_TEST_MODE=start node run-tests.js --timings -g ${{ matrix.group }}/5 -c ${TEST_CONCURRENCY} --type production + afterBuild: RUST_BACKTRACE=0 NEXT_EXTERNAL_TESTS_FILTERS="$(pwd)/test/turbopack-tests-manifest.json" TURBOPACK=1 NEXT_TEST_MODE=start node run-tests.js --timings -g ${{ matrix.group }}/5 -c ${TEST_CONCURRENCY} --type production secrets: inherit test-next-swc-wasm: diff --git a/run-tests.js b/run-tests.js index 5a6b3957346ba..920277a94ff4a 100644 --- a/run-tests.js +++ b/run-tests.js @@ -12,6 +12,14 @@ const { createNextInstall } = require('./test/lib/create-next-install') const glob = promisify(_glob) const exec = promisify(execOrig) +function escapeRegexp(str) { + return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') +} + +/** + * @typedef {{ file: string, cases: 'all' | string[] }} TestFile + */ + const GROUP = process.env.CI ? '##[group]' : '' const ENDGROUP = process.env.CI ? '##[endgroup]' : '' @@ -19,7 +27,7 @@ const ENDGROUP = process.env.CI ? '##[endgroup]' : '' // If process.argv contains a test to be executed, this'll append it to the list. const externalTestsFilterLists = process.env.NEXT_EXTERNAL_TESTS_FILTERS ? require(process.env.NEXT_EXTERNAL_TESTS_FILTERS) - : { enabledTests: [] } + : null const timings = [] const DEFAULT_NUM_RETRIES = os.platform() === 'win32' ? 2 : 1 const DEFAULT_CONCURRENCY = 2 @@ -80,11 +88,11 @@ const cleanUpAndExit = async (code) => { }, 1) } -const isMatchingPattern = (pattern, test) => { +const isMatchingPattern = (pattern, file) => { if (pattern instanceof RegExp) { - return pattern.test(test) + return pattern.test(file) } else { - return test.startsWith(pattern) + return file.startsWith(pattern) } } @@ -149,7 +157,13 @@ async function main() { console.log('Running tests with concurrency:', concurrency) - let tests = process.argv.filter((arg) => arg.match(/\.test\.(js|ts|tsx)/)) + /** @type TestFile[] */ + let tests = process.argv + .filter((arg) => arg.match(/\.test\.(js|ts|tsx)/)) + .map((file) => ({ + file, + cases: 'all', + })) let prevTimings if (tests.length === 0) { @@ -165,20 +179,27 @@ async function main() { cwd: __dirname, ignore: '**/node_modules/**', }) - ).filter((test) => { - if (testPatternRegex) { - return testPatternRegex.test(test) - } - if (filterTestsBy) { - // only include the specified type - if (filterTestsBy === 'none') { - return true + ) + .filter((file) => { + if (testPatternRegex) { + return testPatternRegex.test(file) } - return isMatchingPattern(filterTestsBy, test) - } - // include all except the separately configured types - return !configuredTestTypes.some((type) => isMatchingPattern(type, test)) - }) + if (filterTestsBy) { + // only include the specified type + if (filterTestsBy === 'none') { + return true + } + return isMatchingPattern(filterTestsBy, file) + } + // include all except the separately configured types + return !configuredTestTypes.some((type) => + isMatchingPattern(type, file) + ) + }) + .map((file) => ({ + file, + cases: 'all', + })) } if (outputTimings && groupArg) { @@ -209,21 +230,34 @@ async function main() { } // If there are external manifest contains list of tests, apply it to the test lists. - if (externalTestsFilterLists?.enabledTests.length > 0) { - tests = tests.filter((test) => - externalTestsFilterLists.enabledTests.some((enabled) => - enabled.includes(test) - ) - ) + if (externalTestsFilterLists) { + tests = tests + .filter((test) => { + const info = externalTestsFilterLists[test.file] + return info && info.passed.length > 0 && !info.runtimeError + }) + .map((test) => { + const info = externalTestsFilterLists[test.file] + // only run filtered mode when there are failing tests. + // When the whole test suite passes we can run all tests, including newly added ones. + if (info.failed.length > 0) { + test.cases = info.passed + } + return test + }) } - let testNames = [ - ...new Set( - tests.map((f) => { - return `${f.replace(/\\/g, '/').replace(/\/test$/, '')}` - }) - ), - ] + let testSet = new Set() + tests = tests + .map((test) => { + test.file = test.file.replace(/\\/g, '/').replace(/\/test$/, '') + return test + }) + .filter((test) => { + if (testSet.has(test.file)) return false + testSet.add(test.file) + return true + }) if (groupArg) { const groupParts = groupArg.split('/') @@ -234,7 +268,7 @@ async function main() { const groups = [[]] const groupTimes = [0] - for (const testName of testNames) { + for (const test of tests) { let smallestGroup = groupTimes[0] let smallestGroupIdx = 0 @@ -251,38 +285,39 @@ async function main() { smallestGroupIdx = i } } - groups[smallestGroupIdx].push(testName) - groupTimes[smallestGroupIdx] += prevTimings[testName] || 1 + groups[smallestGroupIdx].push(test) + groupTimes[smallestGroupIdx] += prevTimings[test.file] || 1 } const curGroupIdx = groupPos - 1 - testNames = groups[curGroupIdx] + tests = groups[curGroupIdx] console.log( 'Current group previous accumulated times:', Math.round(groupTimes[curGroupIdx]) + 's' ) } else { - const numPerGroup = Math.ceil(testNames.length / groupTotal) + const numPerGroup = Math.ceil(tests.length / groupTotal) let offset = (groupPos - 1) * numPerGroup - testNames = testNames.slice(offset, offset + numPerGroup) + tests = tests.slice(offset, offset + numPerGroup) console.log('Splitting without timings') } } - if (testNames.length === 0) { + if (tests.length === 0) { console.log('No tests found for', testType, 'exiting..') return cleanUpAndExit(1) } console.log(`${GROUP}Running tests: -${testNames.join('\n')} +${tests.map((t) => t.file).join('\n')} ${ENDGROUP}`) - console.log(`total: ${testNames.length}`) + console.log(`total: ${tests.length}`) - const hasIsolatedTests = testNames.some((test) => { + const hasIsolatedTests = tests.some((test) => { return configuredTestTypes.some( - (type) => type !== testFilters.unit && test.startsWith(`test/${type}`) + (type) => + type !== testFilters.unit && test.file.startsWith(`test/${type}`) ) }) @@ -316,8 +351,8 @@ ${ENDGROUP}`) console.log(`${ENDGROUP}`) } - const sema = new Sema(concurrency, { capacity: testNames.length }) - const outputSema = new Sema(1, { capacity: testNames.length }) + const sema = new Sema(concurrency, { capacity: tests.length }) + const outputSema = new Sema(1, { capacity: tests.length }) const children = new Set() const jestPath = path.join( __dirname, @@ -328,74 +363,73 @@ ${ENDGROUP}`) let firstError = true let killed = false - const runTest = (test = '', isFinalRun, isRetry) => + const runTest = (/** @type {TestFile} */ test, isFinalRun, isRetry) => new Promise((resolve, reject) => { const start = new Date().getTime() let outputChunks = [] const shouldRecordTestWithReplay = process.env.RECORD_REPLAY && isRetry - const child = spawn( - jestPath, - [ - ...(shouldRecordTestWithReplay - ? [`--config=jest.replay.config.js`] - : []), - '--runInBand', - '--forceExit', - '--verbose', - '--silent', - ...(isTestJob - ? ['--json', `--outputFile=${test}${RESULTS_EXT}`] - : []), - test, - ], - { - stdio: ['ignore', 'pipe', 'pipe'], - env: { - ...process.env, - IS_RETRY: isRetry ? 'true' : undefined, - RECORD_REPLAY: shouldRecordTestWithReplay, - // run tests in headless mode by default - HEADLESS: 'true', - TRACE_PLAYWRIGHT: 'true', - NEXT_TELEMETRY_DISABLED: '1', - // unset CI env so CI behavior is only explicitly - // tested when enabled - CI: '', - CIRCLECI: '', - GITHUB_ACTIONS: '', - CONTINUOUS_INTEGRATION: '', - RUN_ID: '', - BUILD_NUMBER: '', - // Format the output of junit report to include the test name - // For the debugging purpose to compare actual run list to the generated reports - // [NOTE]: This won't affect if junit reporter is not enabled - JEST_JUNIT_OUTPUT_NAME: - test && test.length > 0 ? test.replaceAll('/', '_') : undefined, - // Specify suite name for the test to avoid unexpected merging across different env / grouped tests - // This is not individual suites name (corresponding 'describe'), top level suite name which have redundant names by default - // [NOTE]: This won't affect if junit reporter is not enabled - JEST_SUITE_NAME: [ - `${process.env.NEXT_TEST_MODE ?? 'default'}`, - groupArg, - testType, - test, - ] - .filter(Boolean) - .join(':'), - ...(isFinalRun - ? { - // Events can be finicky in CI. This switches to a more - // reliable polling method. - // CHOKIDAR_USEPOLLING: 'true', - // CHOKIDAR_INTERVAL: 500, - // WATCHPACK_POLLING: 500, - } - : {}), - }, - } - ) + const args = [ + ...(shouldRecordTestWithReplay + ? [`--config=jest.replay.config.js`] + : []), + '--runInBand', + '--forceExit', + '--verbose', + '--silent', + ...(isTestJob + ? ['--json', `--outputFile=${test.file}${RESULTS_EXT}`] + : []), + test.file, + ...(test.cases === 'all' + ? [] + : [ + '--testNamePattern', + `^(${test.cases.map(escapeRegexp).join('|')})$`, + ]), + ] + const env = { + IS_RETRY: isRetry ? 'true' : undefined, + RECORD_REPLAY: shouldRecordTestWithReplay, + // run tests in headless mode by default + HEADLESS: 'true', + TRACE_PLAYWRIGHT: 'true', + NEXT_TELEMETRY_DISABLED: '1', + // unset CI env so CI behavior is only explicitly + // tested when enabled + CI: '', + CIRCLECI: '', + GITHUB_ACTIONS: '', + CONTINUOUS_INTEGRATION: '', + RUN_ID: '', + BUILD_NUMBER: '', + // Format the output of junit report to include the test name + // For the debugging purpose to compare actual run list to the generated reports + // [NOTE]: This won't affect if junit reporter is not enabled + JEST_JUNIT_OUTPUT_NAME: test.file.replaceAll('/', '_'), + // Specify suite name for the test to avoid unexpected merging across different env / grouped tests + // This is not individual suites name (corresponding 'describe'), top level suite name which have redundant names by default + // [NOTE]: This won't affect if junit reporter is not enabled + JEST_SUITE_NAME: [ + `${process.env.NEXT_TEST_MODE ?? 'default'}`, + groupArg, + testType, + test.file, + ] + .filter(Boolean) + .join(':'), + ...(isFinalRun + ? { + // Events can be finicky in CI. This switches to a more + // reliable polling method. + // CHOKIDAR_USEPOLLING: 'true', + // CHOKIDAR_INTERVAL: 500, + // WATCHPACK_POLLING: 500, + } + : {}), + } + const handleOutput = (type) => (chunk) => { if (hideOutput) { outputChunks.push({ type, chunk }) @@ -403,7 +437,23 @@ ${ENDGROUP}`) process.stdout.write(chunk) } } - child.stdout.on('data', handleOutput('stdout')) + const stdout = handleOutput('stdout') + stdout( + [ + ...Object.entries(env).map((e) => `${e[0]}=${e[1]}`), + jestPath, + ...args.map((a) => `'${a}'`), + ].join(' ') + ) + + const child = spawn(jestPath, args, { + stdio: ['ignore', 'pipe', 'pipe'], + env: { + ...process.env, + ...env, + }, + }) + child.stdout.on('data', stdout) child.stderr.on('data', handleOutput('stderr')) children.add(child) @@ -417,11 +467,11 @@ ${ENDGROUP}`) firstError && !killed && !shouldContinueTestsOnError if (isExpanded) { firstError = false - process.stdout.write(`❌ ${test} output:\n`) + process.stdout.write(`❌ ${test.file} output:\n`) } else if (killed) { - process.stdout.write(`${GROUP}${test} output (killed)\n`) + process.stdout.write(`${GROUP}${test.file} output (killed)\n`) } else { - process.stdout.write(`${GROUP}❌ ${test} output\n`) + process.stdout.write(`${GROUP}❌ ${test.file} output\n`) } // limit out to last 64kb so that we don't // run out of log room in CI @@ -429,9 +479,9 @@ ${ENDGROUP}`) process.stdout.write(chunk) } if (isExpanded) { - process.stdout.write(`end of ${test} output\n`) + process.stdout.write(`end of ${test.file} output\n`) } else { - process.stdout.write(`end of ${test} output\n${ENDGROUP}\n`) + process.stdout.write(`end of ${test.file} output\n${ENDGROUP}\n`) } outputSema.release() } @@ -450,7 +500,7 @@ ${ENDGROUP}`) __dirname, 'test/traces', path - .relative(path.join(__dirname, 'test'), test) + .relative(path.join(__dirname, 'test'), test.file) .replace(/\//g, '-') ) ) @@ -463,13 +513,13 @@ ${ENDGROUP}`) const originalRetries = numRetries await Promise.all( - testNames.map(async (test) => { - const dirName = path.dirname(test) + tests.map(async (test) => { + const dirName = path.dirname(test.file) let dirSema = directorySemas.get(dirName) // we only restrict 1 test per directory for // legacy integration tests - if (test.startsWith('test/integration') && dirSema === undefined) { + if (test.file.startsWith('test/integration') && dirSema === undefined) { directorySemas.set(dirName, (dirSema = new Sema(1))) } if (dirSema) await dirSema.acquire() @@ -478,34 +528,38 @@ ${ENDGROUP}`) let passed = false const shouldSkipRetries = skipRetryTestManifest.find((t) => - t.includes(test) + t.includes(test.file) ) const numRetries = shouldSkipRetries ? 0 : originalRetries if (shouldSkipRetries) { - console.log(`Skipping retry for ${test} due to skipRetryTestManifest`) + console.log( + `Skipping retry for ${test.file} due to skipRetryTestManifest` + ) } for (let i = 0; i < numRetries + 1; i++) { try { - console.log(`Starting ${test} retry ${i}/${numRetries}`) + console.log(`Starting ${test.file} retry ${i}/${numRetries}`) const time = await runTest( test, shouldSkipRetries || i === numRetries, shouldSkipRetries || i > 0 ) timings.push({ - file: test, + file: test.file, time, }) passed = true console.log( - `Finished ${test} on retry ${i}/${numRetries} in ${time / 1000}s` + `Finished ${test.file} on retry ${i}/${numRetries} in ${ + time / 1000 + }s` ) break } catch (err) { if (i < numRetries) { try { - let testDir = path.dirname(path.join(__dirname, test)) + let testDir = path.dirname(path.join(__dirname, test.file)) // if test is nested in a test folder traverse up a dir to ensure // we clean up relevant test files @@ -517,13 +571,15 @@ ${ENDGROUP}`) await exec(`git checkout "${testDir}"`) } catch (err) {} } else { - console.error(`${test} failed due to ${err}`) + console.error(`${test.file} failed due to ${err}`) } } } if (!passed) { - console.error(`${test} failed to pass within ${numRetries} retries`) + console.error( + `${test.file} failed to pass within ${numRetries} retries` + ) if (!shouldContinueTestsOnError) { killed = true @@ -531,7 +587,7 @@ ${ENDGROUP}`) cleanUpAndExit(1) } else { console.log( - `CONTINUE_ON_ERROR enabled, continuing tests after ${test} failed` + `CONTINUE_ON_ERROR enabled, continuing tests after ${test.file} failed` ) } } @@ -539,7 +595,10 @@ ${ENDGROUP}`) // Emit test output if test failed or if we're continuing tests on error if ((!passed || shouldContinueTestsOnError) && isTestJob) { try { - const testsOutput = await fs.readFile(`${test}${RESULTS_EXT}`, 'utf8') + const testsOutput = await fs.readFile( + `${test.file}${RESULTS_EXT}`, + 'utf8' + ) const obj = JSON.parse(testsOutput) obj.processEnv = { NEXT_TEST_MODE: process.env.NEXT_TEST_MODE, diff --git a/test/build-turbopack-tests-manifest.js b/test/build-turbopack-tests-manifest.js new file mode 100644 index 0000000000000..b6ce518130e7b --- /dev/null +++ b/test/build-turbopack-tests-manifest.js @@ -0,0 +1,128 @@ +const fetch = require('node-fetch') +const fs = require('fs') + +const override = process.argv.includes('--override') + +// TODO: Switch to nextjs-integration-test-data branch once https://github.com/vercel/turbo/pull/5999 is merged. +const RESULT_URL = + 'https://raw.githubusercontent.com/vercel/turbo/nextjs-integration-test-data/test-results/main/nextjs-test-results.json' +const PASSING_JSON_PATH = `${__dirname}/turbopack-tests-manifest.json` +const WORKING_PATH = '/home/runner/work/turbo/turbo/' + +const INITIALIZING_TEST_CASES = [ + 'compile successfully', + 'should build successfully', +] + +const SKIPPED_TEST_SUITES = new Set([ + 'test/integration/router-rerender/test/index.test.js', + 'test/e2e/basepath.test.ts', + 'test/development/acceptance-app/ReactRefreshRequire.test.ts', + 'test/integration/dynamic-routing/test/middleware.test.js', + 'test/integration/css/test/css-modules.test.js', + 'test/development/acceptance/ReactRefreshRequire.test.ts', + 'test/integration/custom-routes/test/index.test.js', + 'test/integration/absolute-assetprefix/test/index.test.js', + 'test/e2e/middleware-rewrites/test/index.test.ts', +]) + +async function updatePassingTests() { + const passing = { __proto__: null } + const res = await fetch(RESULT_URL) + const results = await res.json() + + for (const result of results.result) { + const runtimeError = result.data.numRuntimeErrorTestSuites > 0 + for (const testResult of result.data.testResults) { + const filepath = stripWorkingPath(testResult.name) + for (const file of duplicateFileNames(filepath)) { + if (SKIPPED_TEST_SUITES.has(file)) continue + const fileResults = (passing[file] ??= { + passed: [], + failed: [], + pending: [], + runtimeError, + }) + + let initializationFailed = false + for (const testCase of testResult.assertionResults) { + let { fullName, status } = testCase + if ( + status === 'failed' && + INITIALIZING_TEST_CASES.some((name) => fullName.includes(name)) + ) { + initializationFailed = true + } else if (initializationFailed) { + status = 'failed' + } + const statusArray = fileResults[status] + if (!statusArray) { + throw new Error(`unexpected status "${status}"`) + } + statusArray.push(fullName) + } + } + } + } + + for (const info of Object.values(passing)) { + info.failed = [...new Set(info.failed)] + info.pending = [...new Set(info.pending)] + info.passed = [ + ...new Set(info.passed.filter((name) => !info.failed.includes(name))), + ] + } + + if (!override) { + const oldPassingData = JSON.parse( + fs.readFileSync(PASSING_JSON_PATH, 'utf8') + ) + + for (const file of Object.keys(oldPassingData)) { + const newData = passing[file] + const oldData = oldPassingData[file] + if (!newData) continue + // We only want to keep test cases from the old data that are still exiting + oldData.passed = oldData.passed.filter( + (name) => newData.failed.includes(name) || newData.passed.includes(name) + ) + // Grab test cases that passed before, but fail now + const shouldPass = new Set( + oldData.passed.filter((name) => newData.failed.includes(name)) + ) + if (shouldPass.size > 0) { + const list = JSON.stringify([...shouldPass], 0, 2) + console.log( + `${file} has ${shouldPass.size} test(s) that should pass but failed: ${list}` + ) + } + // Merge the old passing tests with the new ones + newData.passed = [...new Set([...oldData.passed, ...newData.passed])] + // but remove them also from the failed list + newData.failed = newData.failed.filter((name) => !shouldPass.has(name)) + } + } + + fs.writeFileSync(PASSING_JSON_PATH, JSON.stringify(passing, null, 2)) +} + +function stripWorkingPath(path) { + if (!path.startsWith(WORKING_PATH)) { + throw new Error( + `found unexpected working path in "${path}", expected it to begin with ${WORKING_PATH}` + ) + } + return path.slice(WORKING_PATH.length) +} + +function duplicateFileNames(path) { + if (path.includes('/src/')) { + const dist = path.replace('/src/', '/dist/').replace(/.tsx?$/, '.js') + if (fs.existsSync(`${__dirname}/../${dist}`)) { + return [path, dist] + } + } + return [path] +} + +updatePassingTests() diff --git a/test/integration/build-output/test/index.test.js b/test/integration/build-output/test/index.test.js index ecefcf8b726e7..aa5c135d49541 100644 --- a/test/integration/build-output/test/index.test.js +++ b/test/integration/build-output/test/index.test.js @@ -31,6 +31,9 @@ describe('Build Output', () => { )} };` ) } + ;({ stdout } = await nextBuild(appDir, [], { + stdout: true, + })) }) if (hasExperimentalConfig) { @@ -40,10 +43,6 @@ describe('Build Output', () => { } it('should not include internal pages', async () => { - ;({ stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - expect(stdout).toMatch(/\/ (.* )?\d{1,} B/) expect(stdout).toMatch(/\+ First Load JS shared by all [ 0-9.]* kB/) expect(stdout).toMatch(/ chunks\/main-[0-9a-z]{16}\.js [ 0-9.]* kB/) diff --git a/test/turbopack-tests-manifest.js b/test/turbopack-tests-manifest.js deleted file mode 100644 index cdb69390ca0fe..0000000000000 --- a/test/turbopack-tests-manifest.js +++ /dev/null @@ -1,356 +0,0 @@ -// Tests that are currently enabled with experimental Turbopack in CI. -// Only tests that are actively testing against Turbopack should -// be enabled here -const enabledTests = [ - 'test/development/acceptance-app/server-components.test.ts', - 'test/development/acceptance/hydration-error.test.ts', - 'test/development/api-cors-with-rewrite/index.test.ts', - 'test/development/app-dir/basic/basic.test.ts', - 'test/development/app-dir/multiple-compiles-single-route/multiple-compiles-single-route.test.ts', - 'test/development/app-dir/strict-mode-enabled-by-default/strict-mode-enabled-by-default.test.ts', - 'test/development/basic/define-class-fields.test.ts', - 'test/development/basic/emotion-swc.test.ts', - 'test/development/basic/legacy-decorators.test.ts', - 'test/development/basic/misc.test.ts', - 'test/development/basic/node-builtins.test.ts', - 'test/development/basic/next-rs-api.test.ts', - 'test/development/basic/tailwind-jit.test.ts', - 'test/development/basic/theme-ui.test.ts', - 'test/development/client-dev-overlay/index.test.ts', - 'test/development/correct-tsconfig-defaults/index.test.ts', - 'test/development/dotenv-default-expansion/index.test.ts', - 'test/development/experimental-https-server/https-server.generated-key.test.ts', - 'test/development/experimental-https-server/https-server.provided-key.test.ts', - 'test/development/gssp-notfound/index.test.ts', - 'test/development/jsconfig-path-reloading/index.test.ts', - 'test/development/middleware-warnings/index.test.ts', - 'test/development/next-font/deprecated-package.test.ts', - 'test/development/repeated-dev-edits/repeated-dev-edits.test.ts', - 'test/development/tsconfig-path-reloading/index.test.ts', - 'test/development/typescript-auto-install/index.test.ts', - 'test/development/watch-config-file/index.test.ts', - 'test/e2e/app-dir/app-fetch-deduping/app-fetch-deduping.test.ts', - 'test/e2e/app-dir/app-static/app-fetch-logging.test.ts', - 'test/e2e/app-dir/app-validation/validation.test.ts', - 'test/e2e/app-dir/asset-prefix/asset-prefix.test.ts', - 'test/e2e/app-dir/async-component-preload/async-component-preload.test.ts', - 'test/e2e/app-dir/autoscroll-with-css-modules/index.test.ts', - 'test/e2e/app-dir/build-size/index.test.ts', - 'test/e2e/app-dir/crypto-globally-available/crypto-globally-available.test.ts', - 'test/e2e/app-dir/deopted-into-client-rendering-warning/deopted-into-client-rendering-warning.test.ts', - 'test/e2e/app-dir/front-redirect-issue/front-redirect-issue.test.ts', - 'test/e2e/app-dir/headers-static-bailout/headers-static-bailout.test.ts', - 'test/e2e/app-dir/hello-world/hello-world.test.ts', - 'test/e2e/app-dir/i18n-hybrid/i18n-hybrid.test.js', - 'test/e2e/app-dir/import/import.test.ts', - 'test/e2e/app-dir/interoperability-with-pages/navigation.test.ts', - 'test/e2e/app-dir/layout-params/layout-params.test.ts', - 'test/e2e/app-dir/metadata-missing-metadata-base/index.test.ts', - 'test/e2e/app-dir/metadata-suspense/index.test.ts', - 'test/e2e/app-dir/next-config/index.test.ts', - 'test/e2e/app-dir/route-page-manifest-bug/route-page-manifest-bug.test.ts', - 'test/e2e/app-dir/router-stuck-dynamic-static-segment/router-stuck-dynamic-static-segment.test.ts', - 'test/e2e/app-dir/searchparams-static-bailout/searchparams-static-bailout.test.ts', - 'test/e2e/app-dir/similar-pages-paths/similar-pages-paths.test.ts', - 'test/e2e/app-dir/test-template/{{ toFileName name }}/{{ toFileName name }}.test.ts', - 'test/e2e/app-dir/third-parties/basic.test.ts', - 'test/e2e/app-dir/use-params/use-params.test.ts', - 'test/e2e/app-dir/use-selected-layout-segment-s/use-selected-layout-segment-s.test.ts', - 'test/e2e/browserslist-extends/index.test.ts', - 'test/e2e/children-page/index.test.ts', - 'test/e2e/config-promise-export/async-function.test.ts', - 'test/e2e/config-promise-export/promise.test.ts', - 'test/e2e/dynamic-route-interpolation/index.test.ts', - 'test/e2e/handle-non-hoisted-swc-helpers/index.test.ts', - 'test/e2e/hello-world/hello-world.test.ts', - 'test/e2e/i18n-api-support/index.test.ts', - 'test/e2e/i18n-disallow-multiple-locales/i18n-disallow-multiple-locales.test.ts', - 'test/e2e/link-with-api-rewrite/index.test.ts', - 'test/e2e/middleware-fetches-with-body/index.test.ts', - 'test/e2e/next-head/index.test.ts', - 'test/e2e/next-image-forward-ref/index.test.ts', - 'test/e2e/no-eslint-warn-with-no-eslint-config/index.test.ts', - 'test/e2e/nonce-head-manager/index.test.ts', - 'test/e2e/optimized-loading/test/index.test.ts', - 'test/e2e/pages-performance-mark/index.test.ts', - 'test/e2e/postcss-config-cjs/index.test.ts', - 'test/e2e/prerender-crawler.test.ts', - 'test/e2e/proxy-request-with-middleware/test/index.test.ts', - 'test/e2e/repeated-forward-slashes-error/repeated-forward-slashes-error.test.ts', - 'test/e2e/ssr-react-context/index.test.ts', - 'test/e2e/styled-jsx/index.test.ts', - 'test/e2e/test-template/{{ toFileName name }}/{{ toFileName name }}.test.ts', - 'test/e2e/test-utils-tests/basic/basic.test.ts', - 'test/e2e/third-parties/index.test.ts', - 'test/e2e/trailingslash-with-rewrite/index.test.ts', - 'test/e2e/transpile-packages/index.test.ts', - 'test/e2e/type-module-interop/index.test.ts', - 'test/e2e/typescript-version-no-warning/typescript-version-no-warning.test.ts', - 'test/e2e/typescript-version-warning/typescript-version-warning.test.ts', - 'test/e2e/undici-fetch/index.test.ts', - 'test/integration/api-support/test/index.test.js', - 'test/integration/app-dir-export/test/config.test.ts', - 'test/integration/404-page/test/index.test.js', - 'test/integration/404-page-app/test/index.test.js', - 'test/integration/404-page-custom-error/test/index.test.js', - 'test/integration/404-page-ssg/test/index.test.js', - 'test/integration/create-next-app/templates-app.test.ts', - 'test/integration/create-next-app/templates-pages.test.ts', - 'test/integration/custom-routes-i18n-index-redirect/test/index.test.js', - 'test/integration/dist-dir/test/index.test.js', - 'test/integration/index-index/test/index.test.js', - 'test/integration/next-image-new/middleware/test/index.test.ts', - 'test/integration/next-image-new/react-virtualized/test/index.test.ts', - 'test/integration/next-image-new/typescript/test/index.test.ts', - 'test/integration/next-image-new/unoptimized/test/index.test.ts', - 'test/integration/revalidate-as-path/test/index.test.js', - 'test/integration/rewrites-destination-query-array/test/index.test.js', - 'test/integration/root-optional-revalidate/test/index.test.js', - 'test/integration/route-index/test/index.test.js', - 'test/integration/route-indexes/test/index.test.js', - 'test/integration/scss/test/dev-css-handling.test.js', - 'test/integration/src-dir-support-double-dir/test/index.test.js', - 'test/integration/src-dir-support/test/index.test.js', - 'test/integration/ssg-data-404/test/index.test.js', - 'test/integration/ssg-dynamic-routes-404-page/test/index.test.js', - 'test/integration/static-404/test/index.test.js', - 'test/integration/static-page-name/test/index.test.js', - 'test/integration/trailing-slash-dist/test/index.test.js', - 'test/integration/trailing-slashes-href-resolving/test/index.test.js', - 'test/production/app-dir-hide-suppressed-error-during-next-export/index.test.ts', - 'test/production/app-dir-prefetch-non-iso-url/index.test.ts', - 'test/production/jest/new-link-behavior.test.ts', - 'test/production/jest/next-image-preload/next-image-preload.test.ts', - 'test/production/jest/rsc/lib/utils.test.js', - 'test/production/jest/transpile-packages.test.ts', - 'test/production/postcss-plugin-config-as-string/index.test.ts', -] - -/// Naive check to ensure that the enabled tests actually exist -const verifyEnabledTestPath = () => { - const fs = require('fs') - const nonExistTests = enabledTests.filter( - (testPath) => !fs.existsSync(testPath) - ) - - if (Array.isArray(nonExistTests) && nonExistTests.length > 0) { - console.error( - `The following tests are enabled but do not exist:`, - nonExistTests - ) - throw new Error('Invalid test path(s) found') - } -} - -module.exports = { enabledTests, verifyEnabledTestPath } - -/* Old turbopack enabled tests: - - 'test/development/acceptance-app/ReactRefresh.test.ts', - 'test/development/acceptance-app/ReactRefreshLogBoxMisc.test.ts', - 'test/development/acceptance-app/ReactRefreshRequire.test.ts', - // 'test/development/acceptance-app/app-hmr-changes.test.ts', (FLAKY) - 'test/development/acceptance-app/dynamic-error.test.ts', - 'test/development/acceptance-app/version-staleness.test.ts', - 'test/development/acceptance/ReactRefreshLogBox-scss.test.ts', - 'test/development/acceptance/ReactRefreshLogBoxMisc.test.ts', - 'test/development/api-cors-with-rewrite/index.test.ts', - 'test/development/app-dir/multiple-compiles-single-route/multiple-compiles-single-route.test.ts', - // x-ref: below test is flakey and needs to be investigated further - // 'test/development/app-hmr/hmr.test.ts', - 'test/development/basic/define-class-fields.test.ts', - 'test/development/basic/emotion-swc.test.ts', - 'test/development/basic/legacy-decorators.test.ts', - 'test/development/basic/project-directory-rename.test.ts', - 'test/development/basic/theme-ui.test.ts', - 'test/development/dotenv-default-expansion/index.test.ts', - 'test/development/jsconfig-path-reloading/index.test.ts', - 'test/development/middleware-warnings/index.test.ts', - 'test/development/project-directory-with-styled-jsx-suffix/index.test.ts', - 'test/development/repeated-dev-edits/repeated-dev-edits.test.ts', - 'test/development/tsconfig-path-reloading/index.test.ts', - 'test/e2e/app-dir/_allow-underscored-root-directory/_allow-underscored-root-directory.test.ts', - 'test/e2e/app-dir/actions/app-action-invalid.test.ts', - 'test/e2e/app-dir/actions/app-action-size-limit-invalid.test.ts', - 'test/e2e/app-dir/app-alias/app-alias.test.ts', - 'test/e2e/app-dir/app-client-cache/client-cache.test.ts', - 'test/e2e/app-dir/app-css-pageextensions/index.test.ts', - 'test/e2e/app-dir/app-edge-root-layout/index.test.ts', - 'test/e2e/app-dir/app-edge/app-edge.test.ts', - 'test/e2e/app-dir/app-prefetch-false/app-prefetch-false.test.ts', - 'test/e2e/app-dir/app-prefetch/prefetching.test.ts', - 'test/e2e/app-dir/app-validation/validation.test.ts', - 'test/e2e/app-dir/asset-prefix/asset-prefix.test.ts', - 'test/e2e/app-dir/async-component-preload/async-component-preload.test.ts', - 'test/e2e/app-dir/autoscroll-with-css-modules/index.test.ts', - 'test/e2e/app-dir/back-button-download-bug/back-button-download-bug.test.ts', - 'test/e2e/app-dir/build-size/index.test.ts', - 'test/e2e/app-dir/global-error/global-error.test.ts', - 'test/e2e/app-dir/hello-world/hello-world.test.ts', - 'test/e2e/app-dir/import/import.test.ts', - 'test/e2e/app-dir/layout-params/layout-params.test.ts', - 'test/e2e/app-dir/metadata-suspense/index.test.ts', - 'test/e2e/app-dir/rewrites-redirects/rewrites-redirects.test.ts', - 'test/e2e/app-dir/route-page-manifest-bug/route-page-manifest-bug.test.ts', - 'test/e2e/app-dir/router-autoscroll/router-autoscroll.test.ts', - 'test/e2e/app-dir/router-stuck-dynamic-static-segment/router-stuck-dynamic-static-segment.test.ts', - 'test/e2e/app-dir/rsc-basic/rsc-basic.test.ts', - 'test/e2e/app-dir/search-params-react-key/layout-params.test.ts', - 'test/e2e/app-dir/searchparams-static-bailout/searchparams-static-bailout.test.ts', - 'test/e2e/app-dir/test-template/{{ toFileName name }}/{{ toFileName name }}.test.ts', - 'test/e2e/app-dir/use-selected-layout-segment-s/use-selected-layout-segment-s.test.ts', - 'test/e2e/app-dir/crypto-globally-available/crypto-globally-available.test.ts', - 'test/e2e/browserslist-extends/index.test.ts', - 'test/e2e/config-promise-export/async-function.test.ts', - 'test/e2e/config-promise-export/promise.test.ts', - 'test/e2e/conflicting-app-page-error/index.test.ts', - 'test/e2e/disable-js-preload/test/index.test.js', - 'test/e2e/hello-world/hello-world.test.ts', - 'test/e2e/i18n-api-support/index.test.ts', - 'test/e2e/i18n-disallow-multiple-locales/i18n-disallow-multiple-locales.test.ts', - 'test/e2e/i18n-ignore-rewrite-source-locale/rewrites-with-basepath.test.ts', - 'test/e2e/i18n-ignore-rewrite-source-locale/rewrites.test.ts', - 'test/e2e/link-with-api-rewrite/index.test.ts', - 'test/e2e/middleware-fetches-with-body/index.test.ts', - 'test/e2e/middleware-shallow-link/index.test.ts', - 'test/e2e/new-link-behavior/child-a-tag-error.test.ts', - 'test/e2e/new-link-behavior/index.test.ts', - 'test/e2e/new-link-behavior/material-ui.test.ts', - 'test/e2e/new-link-behavior/stitches.test.ts', - 'test/e2e/new-link-behavior/typescript.test.ts', - 'test/e2e/next-head/index.test.ts', - 'test/e2e/next-image-forward-ref/index.test.ts', - 'test/e2e/no-eslint-warn-with-no-eslint-config/index.test.ts', - 'test/e2e/nonce-head-manager/index.test.ts', - 'test/e2e/postcss-config-cjs/index.test.ts', - 'test/e2e/proxy-request-with-middleware/test/index.test.ts', - 'test/e2e/repeated-forward-slashes-error/repeated-forward-slashes-error.test.ts', - 'test/e2e/styled-jsx/index.test.ts', - 'test/e2e/test-template/{{ toFileName name }}/{{ toFileName name }}.test.ts', - 'test/e2e/test-utils-tests/basic/basic.test.ts', - 'test/e2e/trailingslash-with-rewrite/index.test.ts', - 'test/e2e/transpile-packages/index.test.ts', - 'test/e2e/type-module-interop/index.test.ts', - 'test/e2e/typescript-version-no-warning/typescript-version-no-warning.test.ts', - 'test/e2e/typescript-version-warning/typescript-version-warning.test.ts', - 'test/e2e/undici-fetch/index.test.ts', - 'test/e2e/yarn-pnp/test/with-eslint.test.ts', - 'test/e2e/yarn-pnp/test/with-next-sass.test.ts', - 'test/integration/404-page-custom-error/test/index.test.js', - 'test/integration/amp-export-validation/test/index.test.js', - 'test/integration/amphtml-custom-validator/test/index.test.js', - 'test/integration/amphtml-fragment-style/test/index.test.js', - 'test/integration/api-body-parser/test/index.test.js', - 'test/integration/api-catch-all/test/index.test.js', - 'test/integration/app-aspath/test/index.test.js', - 'test/integration/app-config-asset-prefix/test/index.test.js', - 'test/integration/app-functional/test/index.test.js', - 'test/integration/auto-export-error-bail/test/index.test.js', - 'test/integration/auto-export-query-error/test/index.test.js', - 'test/integration/bigint/test/index.test.js', - 'test/integration/catches-missing-getStaticProps/test/index.test.js', - 'test/integration/clean-distdir/test/index.test.js', - 'test/integration/client-navigation-a11y/test/index.test.js', - // TODO: re-enable once the logging is aligned - // 'test/integration/config-experimental-warning/test/index.test.js', - 'test/integration/config-schema-check/test/index.test.js', - 'test/integration/config-syntax-error/test/index.test.js', - 'test/integration/config-validation/test/index.test.ts', - 'test/integration/conflicting-ssg-paths/test/index.test.js', - 'test/integration/create-next-app/index.test.ts', - 'test/integration/create-next-app/package-manager.test.ts', - 'test/integration/create-next-app/templates-app.test.ts', - 'test/integration/create-next-app/templates-pages.test.ts', - 'test/integration/css/test/dev-css-handling.test.js', - 'test/integration/custom-error-page-exception/test/index.test.js', - 'test/integration/custom-server-types/test/index.test.js', - 'test/integration/custom-server/test/index.test.js', - 'test/integration/dedupes-scripts/test/index.test.js', - 'test/integration/development-hmr-refresh/test/index.test.js', - 'test/integration/disable-js/test/index.test.js', - 'test/integration/document-head-warnings/test/index.test.js', - 'test/integration/duplicate-pages/test/index.test.js', - 'test/integration/dynamic-require/test/index.test.js', - 'test/integration/dynamic-route-rename/test/index.test.js', - 'test/integration/empty-object-getInitialProps/test/index.test.js', - 'test/integration/errors-on-output-to-public/test/index.test.js', - 'test/integration/errors-on-output-to-static/test/index.test.js', - 'test/integration/eslint/test/lint-cache.test.js', - 'test/integration/eslint/test/next-lint.test.js', - 'test/integration/export-404/test/index.test.js', - 'test/integration/export-default-map/test/index.test.js', - 'test/integration/export-dynamic-pages/test/index.test.js', - 'test/integration/export-fallback-true-error/test/index.test.js', - 'test/integration/export-getInitialProps-warn/test/index.test.js', - 'test/integration/export-image-default/test/index.test.js', - 'test/integration/export-image-loader-legacy/test/index.test.js', - 'test/integration/export-index-not-found-gsp/test/index.test.ts', - 'test/integration/export-intent/test/index.test.js', - 'test/integration/export-no-build/test/index.test.js', - 'test/integration/export-progress-status-message/test/index.test.js', - 'test/integration/export-subfolders/test/index.test.js', - 'test/integration/fallback-modules/test/index.test.js', - 'test/integration/filesystempublicroutes/test/index.test.js', - 'test/integration/firebase-grpc/test/index.test.js', - 'test/integration/future/test/index.test.js', - 'test/integration/gsp-extension/test/index.test.js', - 'test/integration/handles-export-errors/test/index.test.js', - 'test/integration/hashbang/test/index.test.js', - 'test/integration/index-index/test/index.test.js', - 'test/integration/initial-ref/test/index.test.js', - 'test/integration/invalid-config-values/test/index.test.js', - 'test/integration/invalid-page-automatic-static-optimization/test/index.test.js', - 'test/integration/invalid-revalidate-values/test/index.test.js', - 'test/integration/invalid-server-options/test/index.test.js', - 'test/integration/json-serialize-original-error/test/index.test.js', - 'test/integration/legacy-ssg-methods-error/test/index.test.js', - 'test/integration/link-ref/test/index.test.js', - 'test/integration/link-with-multiple-child/test/index.test.js', - 'test/integration/link-without-router/test/index.test.js', - 'test/integration/middleware-build-errors/test/index.test.js', - 'test/integration/middleware-overrides-node.js-api/test/index.test.ts', - 'test/integration/missing-document-component-error/test/index.test.js', - 'test/integration/next-image-legacy/custom-resolver/test/index.test.ts', - 'test/integration/next-image-legacy/no-intersection-observer-fallback/test/index.test.ts', - 'test/integration/next-image-legacy/noscript/test/index.test.ts', - 'test/integration/next-image-legacy/react-virtualized/test/index.test.ts', - 'test/integration/next-image-legacy/unoptimized/test/index.test.ts', - 'test/integration/next-image-new/react-virtualized/test/index.test.ts', - // 'test/integration/next-image-new/unoptimized/test/index.test.ts', (FLAKY) - 'test/integration/no-op-export/test/index.test.js', - 'test/integration/non-next-dist-exclude/test/index.test.js', - 'test/integration/non-standard-node-env-warning/test/index.test.js', - 'test/integration/ondemand/test/index.test.js', - 'test/integration/optional-chaining-nullish-coalescing/test/index.test.js', - 'test/integration/plugin-mdx-rs/test/index.test.js', - 'test/integration/prerender-invalid-catchall-params/test/index.test.js', - 'test/integration/prerender-invalid-paths/test/index.test.js', - 'test/integration/prerender-legacy/test/index.test.js', - 'test/integration/production-build-dir/test/index.test.js', - 'test/integration/production-start-no-build/test/index.test.js', - 'test/integration/router-hash-navigation/test/index.test.js', - 'test/integration/router-prefetch/test/index.test.js', - 'test/integration/router-rerender/test/index.test.js', - 'test/integration/scss/test/dev-css-handling.test.js', - 'test/integration/src-dir-support-double-dir/test/index.test.js', - 'test/integration/ssg-dynamic-routes-404-page/test/index.test.js', - 'test/integration/static-404/test/index.test.js', - 'test/integration/static-page-name/test/index.test.js', - 'test/integration/trailing-slashes-href-resolving/test/index.test.js', - 'test/integration/tsconfig-verifier/test/index.test.js', - 'test/integration/typescript-baseurl/test/index.test.js', - 'test/integration/typescript-external-dir/project/test/index.test.js', - 'test/integration/typescript-filtered-files/test/index.test.js', - // 'test/integration/typescript-hmr/test/index.test.js', (FLAKY) - 'test/integration/webpack-config-mainjs/test/index.test.js', - 'test/integration/with-electron/test/index.test.js', - 'test/production/ci-missing-typescript-deps/index.test.ts', - 'test/production/enoent-during-require/index.test.ts', - 'test/production/eslint-plugin-deps/index.test.ts', - 'test/production/fallback-export-error/index.test.ts', - 'test/production/jest/new-link-behavior.test.ts', - 'test/production/jest/transpile-packages.test.ts', - 'test/production/postcss-plugin-config-as-string/index.test.ts', - 'test/production/supports-module-resolution-nodenext/supports-moduleresolution-nodenext.test.ts', - -*/ diff --git a/test/turbopack-tests-manifest.json b/test/turbopack-tests-manifest.json new file mode 100644 index 0000000000000..7aebed3620a63 --- /dev/null +++ b/test/turbopack-tests-manifest.json @@ -0,0 +1,14363 @@ +{ + "packages/font/src/google/sort-fonts-variant-values.test.ts": { + "passed": [ + "sortFontsVariantValues should correctly compare and return result for plain integer values", + "sortFontsVariantValues should correctly compare and return result for comma-separated values", + "sortFontsVariantValues should sort an array of plain integer values correctly", + "sortFontsVariantValues should sort an array of values with comma-separated values correctly" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/font/dist/google/sort-fonts-variant-values.test.js": { + "passed": [ + "sortFontsVariantValues should correctly compare and return result for plain integer values", + "sortFontsVariantValues should correctly compare and return result for comma-separated values", + "sortFontsVariantValues should sort an array of plain integer values correctly", + "sortFontsVariantValues should sort an array of values with comma-separated values correctly" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/font/src/google/validate-google-font-function-call.test.ts": { + "passed": [ + "validateFontFunctionCall errors Missing function name", + "validateFontFunctionCall errors Unknown font", + "validateFontFunctionCall errors Unknown weight", + "validateFontFunctionCall errors Missing weight for non variable font", + "validateFontFunctionCall errors Unknown style", + "validateFontFunctionCall errors Invalid display value", + "validateFontFunctionCall errors Variable in weight array", + "validateFontFunctionCall errors Invalid subset in call", + "validateFontFunctionCall errors Missing subsets in config and call", + "validateFontFunctionCall errors Setting axes on non variable font" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/font/dist/google/validate-google-font-function-call.test.js": { + "passed": [ + "validateFontFunctionCall errors Missing function name", + "validateFontFunctionCall errors Unknown font", + "validateFontFunctionCall errors Unknown weight", + "validateFontFunctionCall errors Missing weight for non variable font", + "validateFontFunctionCall errors Unknown style", + "validateFontFunctionCall errors Invalid display value", + "validateFontFunctionCall errors Variable in weight array", + "validateFontFunctionCall errors Invalid subset in call", + "validateFontFunctionCall errors Missing subsets in config and call", + "validateFontFunctionCall errors Setting axes on non variable font" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/font/src/google/find-font-files-in-css.test.ts": { + "passed": [ + "findFontFilesInCss should find all font files and preload requested subsets", + "findFontFilesInCss should not return duplicate font files when several variants use the same font file" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/font/dist/google/find-font-files-in-css.test.js": { + "passed": [ + "findFontFilesInCss should find all font files and preload requested subsets", + "findFontFilesInCss should not return duplicate font files when several variants use the same font file" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/font/src/google/get-font-axes.test.ts": { + "passed": [ + "getFontAxes errors Setting axes on font without definable axes", + "getFontAxes errors Invalid axes value", + "getFontAxes errors Invalid value in axes array" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/font/dist/google/get-font-axes.test.js": { + "passed": [ + "getFontAxes errors Setting axes on font without definable axes", + "getFontAxes errors Invalid axes value", + "getFontAxes errors Invalid value in axes array" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/font/src/google/loader.test.ts": { + "passed": [ + "next/font/google loader URL from options Inter", + "next/font/google loader URL from options Source_Sans_3", + "next/font/google loader URL from options Roboto_Flex", + "next/font/google loader URL from options Oooh_Baby", + "next/font/google loader URL from options Albert_Sans", + "next/font/google loader URL from options Fraunces", + "next/font/google loader URL from options Molle", + "next/font/google loader URL from options Roboto", + "next/font/google loader URL from options Roboto Mono", + "next/font/google loader URL from options Poppins", + "next/font/google loader URL from options Nabla", + "next/font/google loader URL from options Ballet" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/font/dist/google/loader.test.js": { + "passed": [ + "next/font/google loader URL from options Inter", + "next/font/google loader URL from options Source_Sans_3", + "next/font/google loader URL from options Roboto_Flex", + "next/font/google loader URL from options Oooh_Baby", + "next/font/google loader URL from options Albert_Sans", + "next/font/google loader URL from options Fraunces", + "next/font/google loader URL from options Molle", + "next/font/google loader URL from options Roboto", + "next/font/google loader URL from options Roboto Mono", + "next/font/google loader URL from options Poppins", + "next/font/google loader URL from options Nabla", + "next/font/google loader URL from options Ballet" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/font/src/local/loader.test.ts": { + "passed": [ + "next/font/local loader generated CSS Default CSS", + "next/font/local loader generated CSS Weight and style", + "next/font/local loader generated CSS Other properties", + "next/font/local loader generated CSS Multiple weights default style", + "next/font/local loader generated CSS Multiple styles default weight" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/font/dist/local/loader.test.js": { + "passed": [ + "next/font/local loader generated CSS Default CSS", + "next/font/local loader generated CSS Weight and style", + "next/font/local loader generated CSS Other properties", + "next/font/local loader generated CSS Multiple weights default style", + "next/font/local loader generated CSS Multiple styles default weight" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/font/src/local/validate-local-font-function-call.test.ts": { + "passed": [ + "validateLocalFontFunctionCall Not using default export", + "validateLocalFontFunctionCall Missing src", + "validateLocalFontFunctionCall Invalid file extension", + "validateLocalFontFunctionCall Invalid display value", + "validateLocalFontFunctionCall Invalid declaration", + "validateLocalFontFunctionCall Empty src array" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/font/dist/local/validate-local-font-function-call.test.js": { + "passed": [ + "validateLocalFontFunctionCall Not using default export", + "validateLocalFontFunctionCall Missing src", + "validateLocalFontFunctionCall Invalid file extension", + "validateLocalFontFunctionCall Invalid display value", + "validateLocalFontFunctionCall Invalid declaration", + "validateLocalFontFunctionCall Empty src array" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/font/src/local/pick-font-file-for-fallback-generation.test.ts": { + "passed": [ + "pickFontFileForFallbackGeneration should pick the weight closest to 400", + "pickFontFileForFallbackGeneration should pick the thinner weight if both have the same distance to 400", + "pickFontFileForFallbackGeneration should pick variable range closest to 400", + "pickFontFileForFallbackGeneration should prefer normal style over italic", + "pickFontFileForFallbackGeneration should error on invalid weight in array", + "pickFontFileForFallbackGeneration Invalid variable weight in array" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/font/dist/local/pick-font-file-for-fallback-generation.test.js": { + "passed": [ + "pickFontFileForFallbackGeneration should pick the weight closest to 400", + "pickFontFileForFallbackGeneration should pick the thinner weight if both have the same distance to 400", + "pickFontFileForFallbackGeneration should pick variable range closest to 400", + "pickFontFileForFallbackGeneration should prefer normal style over italic", + "pickFontFileForFallbackGeneration should error on invalid weight in array", + "pickFontFileForFallbackGeneration Invalid variable weight in array" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/build/webpack/loaders/metadata/resolve-route-data.test.ts": { + "passed": [ + "resolveRouteData resolveRobots should resolve robots.txt", + "resolveRouteData resolveRobots should error with ts when specify both wildcard userAgent and specific userAgent", + "resolveRouteData resolveSitemap should resolve sitemap.xml" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/navigation.test.ts": { + "passed": [ + "next/navigation should be able to construct URLSearchParams from ReadonlyURLSearchParams" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/promise-queue.test.ts": { + "passed": [ + "PromiseQueue should limit the number of concurrent promises", + "PromiseQueue should allow bumping a promise to be next in the queue" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/build/webpack/plugins/next-types-plugin/index.test.ts": { + "passed": [ + "next-types-plugin should generate correct base import path", + "next-types-plugin should generate correct base import path for nx monorepos", + "next-types-plugin should generate correct base import path for custom projects" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/react-dev-overlay/internal/components/hot-linked-text/get-words-and-whitespaces.test.ts": { + "passed": [ + "getWordsAndWhitespaces should return sequences of words and whitespaces" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/redirect.test.ts": { + "passed": ["test should throw a redirect error"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/compute-changed-path.test.ts": { + "passed": ["computeChangedPath should return the correct path"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/apply-router-state-patch-to-tree.test.tsx": { + "passed": ["applyRouterStatePatchToTree should apply a patch to the tree"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/create-href-from-url.test.ts": { + "passed": [ + "createHrefFromUrl returns a string", + "createHrefFromUrl adds hash", + "createHrefFromUrl adds searchParams", + "createHrefFromUrl adds pathname", + "createHrefFromUrl adds pathname, searchParams, and hash" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/create-initial-router-state.test.tsx": { + "passed": [ + "createInitialRouterState should return the correct initial router state" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/create-record-from-thenable.test.ts": { + "passed": [ + "createRecordFromThenable successful promise", + "createRecordFromThenable rejecting promise" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/fill-cache-with-data-property.test.tsx": { + "passed": ["fillCacheWithDataProperty should add data property"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/create-router-cache-key.test.ts": { + "passed": [ + "createRouterCacheKey should support string segment", + "createRouterCacheKey should support dynamic segment", + "createRouterCacheKey should support catch all segment" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/create-optimistic-tree.test.ts": { + "passed": ["createOptimisticTree should create an optimistic tree"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/fill-cache-with-new-subtree-data.test.tsx": { + "passed": [ + "fillCacheWithNewSubtreeData should apply subTreeData and head property" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.test.tsx": { + "passed": [ + "fillLazyItemsTillLeafWithHead should fill lazy items till leaf with head" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/get-segment-value.test.ts": { + "passed": [ + "getSegmentValue should support string segment", + "getSegmentValue should support dynamic segment", + "getSegmentValue should support catch all segment" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.test.tsx": { + "passed": [ + "invalidateCacheBelowFlightSegmentPath should invalidate cache below flight segment path" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/invalidate-cache-by-router-state.test.tsx": { + "passed": [ + "invalidateCacheByRouterState should invalidate the cache by router state" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/is-navigating-to-new-root-layout.test.ts": { + "passed": [ + "shouldHardNavigate should return false if there is no new root layout", + "shouldHardNavigate should return true if there is a mismatch between the root layouts" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/read-record-value.test.ts": { + "passed": [ + "readRecordValue successful promise", + "readRecordValue rejecting promise" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/reducers/find-head-in-cache.test.tsx": { + "passed": ["findHeadInCache should find the head"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/reducers/navigate-reducer.test.tsx": { + "passed": [ + "navigateReducer should apply navigation", + "navigateReducer should apply navigation when called twice (concurrent)", + "navigateReducer should apply navigation for external url (push)", + "navigateReducer should apply navigation for external url (replace)", + "navigateReducer should apply navigation for forceOptimisticNavigation", + "navigateReducer should apply navigation for scroll", + "navigateReducer should apply navigation with prefetched data", + "navigateReducer should apply parallel routes navigation (concurrent)", + "navigateReducer should apply navigation for hash fragments within the same tree", + "navigateReducer should apply navigation for hash fragments within a different tree" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/reducers/prefetch-reducer.test.tsx": { + "passed": [ + "prefetchReducer should apply navigation", + "prefetchReducer should apply navigation (concurrent)" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/reducers/refresh-reducer.test.tsx": { + "passed": [ + "refreshReducer should apply refresh", + "refreshReducer should apply refresh (concurrent)", + "refreshReducer should invalidate all segments (concurrent)", + "refreshReducer should invalidate prefetchCache (concurrent)" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/reducers/restore-reducer.test.tsx": { + "passed": [ + "serverPatchReducer should apply server patch", + "serverPatchReducer should apply server patch (concurrent)" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/reducers/server-patch-reducer.test.tsx": { + "passed": [ + "serverPatchReducer should apply server patch", + "serverPatchReducer should apply server patch (concurrent)", + "serverPatchReducer should apply server patch without affecting focusAndScrollRef" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/client/components/router-reducer/should-hard-navigate.test.tsx": { + "passed": [ + "shouldHardNavigate should return false if the segments match", + "shouldHardNavigate should return false if segments are dynamic and match", + "shouldHardNavigate should return true if segments are dynamic and mismatch" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/lib/format-server-error.test.ts": { + "passed": ["formatServerError should not append message several times"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/lib/metadata/resolvers/resolve-title.test.ts": { + "passed": [ + "resolveTitle should resolve nullable template as empty string title", + "resolveTitle should resolve title with template" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/lib/metadata/resolvers/resolve-opengraph.test.ts": { + "passed": [ + "resolveImages should resolve images", + "resolveImages should not mutate passed images", + "resolveImages should filter out invalid images" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/lib/metadata/resolve-metadata.test.ts": { + "passed": [ + "accumulateMetadata typing should support both sync and async metadata", + "accumulateMetadata title should merge title with page title", + "accumulateMetadata title should merge title with parent layout ", + "accumulateMetadata icon should resolve icons.icon correctly", + "accumulateMetadata icon should resolve icons.apple", + "accumulateMetadata itunes should resolve relative url starting with ./ with pathname for itunes.appArgument", + "accumulateMetadata openGraph and twitter should convert string or URL images field to array, not only for basic og type", + "accumulateMetadata openGraph and twitter should fill twitter with partial existing openGraph metadata", + "accumulateMetadata openGraph and twitter should fill only the existing props from openGraph to twitter", + "accumulateMetadata openGraph and twitter should resolve relative url starting with ./ with pathname for openGraph.url", + "accumulateMetadata openGraph and twitter should override openGraph or twitter images when current layer specifies social images properties", + "accumulateMetadata themeColor should support string theme color", + "accumulateMetadata themeColor should support theme color descriptors", + "accumulateMetadata viewport should support string viewport", + "accumulateMetadata viewport should support viewport descriptors", + "accumulateMetadata alternate should support string alternate", + "accumulateMetadata alternate should support alternate descriptors" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/lib/metadata/resolvers/resolve-url.test.ts": { + "passed": [ + "metadata: resolveUrl should return null when url is falsy", + "metadata: resolveUrl should return url itself when metadataBase is null or url is valid URL", + "metadata: resolveUrl should compose with metadataBase when url is relative or absolute", + "metadata: resolveUrl should ignore metadataBase when url is valid URL" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/dev/parse-version-info.test.ts": { + "passed": [ + "parse version info installed: 12.0.0, latest: 13.1.1, canary: 13.0.1-canary.0 yields stale-major", + "parse version info installed: 13.0.0, latest: 13.1.0, canary: 13.1.1-canary.0 yields stale-minor", + "parse version info installed: 13.1.1, latest: 13.1.2, canary: 13.1.3-canary.0 yields stale-patch", + "parse version info installed: 13.0.1-canary.0, latest: 13.0.0, canary: 13.0.1-canary.1 yields stale-prerelease", + "parse version info installed: 13.0.1-canary.0, latest: 13.0.0, canary: 13.1.0-canary.0 yields stale-prerelease", + "parse version info installed: 13.1.0, latest: 13.1.0, canary: 13.1.1-canary.0 yields fresh", + "parse version info installed: 13.1.1-canary.7, latest: 13.1.0, canary: 13.1.1-canary.7 yields fresh", + "parse version info installed: 13.0.0, latest: 12.0.0, canary: 12.0.1-canary.0 yields newer-than-npm", + "parse version info installed: 13.0.1-canary.8, latest: 13.0.0, canary: 13.0.1-canary.7 yields newer-than-npm", + "parse version info installed: 13.0.0, latest: 13.1.0, canary: invalid yields unknown", + "parse version info installed: 13.0.0, latest: invalid, canary: 13.0.1-canary.0 yields unknown", + "parse version info installed: invalid, latest: 13.0.1, canary: 13.0.1-canary.0 yields unknown" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/future/helpers/interception-routes.test.ts": { + "passed": [ + "Interception Route helper isInterceptionRouteAppPath should validate correct paths", + "Interception Route helper isInterceptionRouteAppPath should not validate incorrect paths", + "Interception Route helper extractInterceptionRouteInformation should extract correct information", + "Interception Route helper extractInterceptionRouteInformation should not extract incorrect information", + "Interception Route helper extractInterceptionRouteInformation should check the segment length" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/future/helpers/i18n-provider.test.ts": { + "passed": [ + "I18NProvider detectDomainLocale for domain example.com", + "I18NProvider detectDomainLocale for domain example.fr", + "I18NProvider detectDomainLocale for domain example.de", + "I18NProvider detectDomainLocale for domain example.ca", + "I18NProvider should detect the correct domain locale", + "I18NProvider analyze for pathname / and defaultLocale en", + "I18NProvider analyze for pathname /another/page and defaultLocale en", + "I18NProvider analyze for pathname /en and defaultLocale en", + "I18NProvider analyze for pathname /fr and defaultLocale en", + "I18NProvider analyze for pathname /en-CA and defaultLocale en", + "I18NProvider analyze for pathname /en/another/page and defaultLocale en", + "I18NProvider analyze for pathname /fr/another/page and defaultLocale en", + "I18NProvider analyze for pathname /en-CA/another/page and defaultLocale en" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/future/normalizers/absolute-filename-normalizer.test.ts": { + "passed": [ + "AbsoluteFilenameNormalizer normalizes '/app/basic/(grouped)/endpoint/nested/route.ts' to '/basic/(grouped)/endpoint/nested/route'", + "AbsoluteFilenameNormalizer normalizes '/pages/basic/endpoint/nested.ts' to '/basic/endpoint/nested'", + "AbsoluteFilenameNormalizer normalizes '/pages/basic/endpoint/index.ts' to '/basic/endpoint'" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/future/route-matcher-managers/default-route-matcher-manager.test.ts": { + "passed": [ + "DefaultRouteMatcherManager will throw an error when used before it has been reloaded", + "DefaultRouteMatcherManager will not error and not match when no matchers are provided", + "DefaultRouteMatcherManager can handle locale aware matchers for /nl-NL/some/path and locale nl-NL", + "DefaultRouteMatcherManager can handle locale aware matchers for /en-US/some/path and locale en-US", + "DefaultRouteMatcherManager can handle locale aware matchers for /some/path and locale {\"inferredFromDefault\": false, \"pathname\": \"/some/path\"}", + "DefaultRouteMatcherManager calls the locale route matcher when one is provided", + "DefaultRouteMatcherManager will match a route that is not locale aware when it was inferred from the default locale" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/future/route-matcher-providers/app-route-route-matcher-provider.test.ts": { + "passed": [ + "AppRouteRouteMatcherProvider returns no routes with an empty manifest", + "AppRouteRouteMatcherProvider manifest matching returns the correct routes for /", + "AppRouteRouteMatcherProvider manifest matching returns the correct routes for /users/[id]", + "AppRouteRouteMatcherProvider manifest matching returns the correct routes for /users" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/future/route-matcher-providers/app-page-route-matcher-provider.test.ts": { + "passed": [ + "AppPageRouteMatcherProvider returns no routes with an empty manifest", + "AppPageRouteMatcherProvider manifest matching returns the correct routes for /", + "AppPageRouteMatcherProvider manifest matching returns the correct routes for /about", + "AppPageRouteMatcherProvider manifest matching returns the correct routes for /dashboard/users/[id]", + "AppPageRouteMatcherProvider manifest matching returns the correct routes for /dashboard/users" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/future/route-matcher-providers/dev/dev-app-page-route-matcher-provider.test.ts": { + "passed": [ + "DevAppPageRouteMatcher returns no routes with an empty filesystem", + "DevAppPageRouteMatcher filename matching matches the '/(marketing)/about/page' route specified with the provided files", + "DevAppPageRouteMatcher filename matching matches the '/some/other/page' route specified with the provided files", + "DevAppPageRouteMatcher filename matching matches the '/page' route specified with the provided files" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/future/route-matcher-providers/dev/dev-app-route-route-matcher-provider.test.ts": { + "passed": [ + "DevAppRouteRouteMatcher returns no routes with an empty filesystem", + "DevAppRouteRouteMatcher filename matching matches the '/some/other/route' route specified with the provided files", + "DevAppRouteRouteMatcher filename matching matches the '/route' route specified with the provided files" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/future/route-matcher-providers/dev/dev-pages-api-route-matcher-provider.test.ts": { + "passed": [ + "DevPagesAPIRouteMatcherProvider returns no routes with an empty filesystem", + "DevPagesAPIRouteMatcherProvider filename matching matches the '/api/other/route' route specified with the provided files", + "DevPagesAPIRouteMatcherProvider filename matching matches the '/api/other' route specified with the provided files", + "DevPagesAPIRouteMatcherProvider filename matching matches the '/api' route specified with the provided files" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/future/route-matcher-providers/dev/dev-pages-route-matcher-provider.test.ts": { + "passed": [ + "DevPagesRouteMatcherProvider returns no routes with an empty filesystem", + "DevPagesRouteMatcherProvider filename matching matches the '/' route specified with the provided files", + "DevPagesRouteMatcherProvider filename matching matches the '/some/api/route' route specified with the provided files", + "DevPagesRouteMatcherProvider filename matching matches the '/some/other/route' route specified with the provided files", + "DevPagesRouteMatcherProvider filename matching matches the '/some/other/route/index/route' route specified with the provided files" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/future/route-matcher-providers/pages-api-route-matcher-provider.test.ts": { + "passed": [ + "PagesAPIRouteMatcherProvider returns no routes with an empty manifest", + "PagesAPIRouteMatcherProvider manifest matching returns the correct routes for /api/users/[id]", + "PagesAPIRouteMatcherProvider manifest matching returns the correct routes for /api/users", + "PagesAPIRouteMatcherProvider manifest matching returns the correct routes for /api" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/future/route-matcher-providers/dev/helpers/file-reader/batched-file-reader.test.ts": { + "passed": [ + "CachedFileReader will only scan the filesystem a minimal amount of times", + "CachedFileReader will send an error back only to the correct reader" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/future/route-matcher-providers/pages-route-matcher-provider.test.ts": { + "passed": [ + "PagesRouteMatcherProvider returns no routes with an empty manifest", + "PagesRouteMatcherProvider locale matching locale has the match for /blog/[slug]", + "PagesRouteMatcherProvider locale matching locale has the match for /", + "PagesRouteMatcherProvider locale matching locale has the match for /404", + "PagesRouteMatcherProvider manifest matching returns the correct routes for /users/[id]", + "PagesRouteMatcherProvider manifest matching returns the correct routes for /users", + "PagesRouteMatcherProvider manifest matching returns the correct routes for /" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/node-polyfill-crypto.test.ts": { + "passed": ["node-polyfill-crypto overwrite crypto"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/lib/mock-request.test.ts": { + "passed": [ + "MockedRequest should have the correct properties", + "MockedResponse should merge headers correctly when calling writeHead", + "MockedResponse should update the statusMessage after calling writeHead", + "MockedResponse should handle set-cookie headers correctly" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/web/spec-extension/adapters/headers.test.ts": { + "passed": [ + "HeadersAdapter should be able to create a new instance from an IncomingHttpHeaders", + "HeadersAdapter should be able to create a new instance from a Headers", + "HeadersAdapter should be able to create a new instance from a HeadersAdapter", + "HeadersAdapter should be able to create a new instance from an object", + "HeadersAdapter should handle multiple values for a header", + "HeadersAdapter entries should return an iterator of entries", + "HeadersAdapter keys should return an iterator of keys", + "HeadersAdapter values should return an iterator of values", + "HeadersAdapter forEach should iterate over all entries", + "HeadersAdapter iterator should iterate over all entries", + "HeadersAdapter case-insensitive should handle different case for header names", + "HeadersAdapter case-insensitive should handle different case for header names when mutated out of band", + "HeadersAdapter sealed should be able to seal a Headers instance", + "HeadersAdapter sealed should be able to seal a HeadersAdapter instance", + "HeadersAdapter sealed should be able to seal a HeadersAdapter and still mutate the original" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/web/spec-extension/adapters/request-cookies.test.ts": { + "passed": [ + "RequestCookiesAdapter should be able to create a new instance from a RequestCookies", + "RequestCookiesAdapter should be able to create a new instance from an empty RequestCookies" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/server/web/utils.test.ts": { + "passed": [ + "toNodeHeaders should handle multiple set-cookie headers correctly", + "toNodeHeaders should handle a single set-cookie header correctly", + "toNodeHeaders should handle a single set-cookie header with multiple cookies correctly", + "toNodeHeaders should handle mixed case set-cookie headers correctly" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/shared/lib/router/adapters.test.tsx": { + "passed": [ + "adaptForAppRouterInstance should forward a call to `back()`", + "adaptForAppRouterInstance should forward a call to `forward()`", + "adaptForAppRouterInstance should forward a call to `reload()`", + "adaptForAppRouterInstance should forward a call to `push()`", + "adaptForAppRouterInstance should forward a call to `push()` with options", + "adaptForAppRouterInstance should forward a call to `replace()`", + "adaptForAppRouterInstance should forward a call to `replace()` with options", + "adaptForAppRouterInstance should forward a call to `prefetch()`" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/dist/shared/lib/router/adapters.test.js": { + "passed": [ + "adaptForAppRouterInstance should forward a call to `back()`", + "adaptForAppRouterInstance should forward a call to `forward()`", + "adaptForAppRouterInstance should forward a call to `reload()`", + "adaptForAppRouterInstance should forward a call to `push()`", + "adaptForAppRouterInstance should forward a call to `push()` with options", + "adaptForAppRouterInstance should forward a call to `replace()`", + "adaptForAppRouterInstance should forward a call to `replace()` with options", + "adaptForAppRouterInstance should forward a call to `prefetch()`" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/shared/lib/get-hostname.test.ts": { + "passed": [ + "getHostname from URL should return example.com for http://example.com", + "getHostname from URL should return example.com for http://example.com/", + "getHostname from URL should return example.com for http://example.com:3000", + "getHostname from URL should return example.com for https://example.com", + "getHostname from URL should return example.com for https://example.com/", + "getHostname from URL should return example.com for https://example.com:3000", + "getHostname from URL should return localhost for http://localhost", + "getHostname from URL should return localhost for http://localhost/", + "getHostname from URL should return localhost for http://localhost:3000", + "getHostname from URL should return 127.0.0.1 for http://127.0.0.1", + "getHostname from URL should return 127.0.0.1 for http://127.0.0.1/", + "getHostname from URL should return 127.0.0.1 for http://127.0.0.1:3000", + "getHostname from URL should return 8.8.8.8 for http://8.8.8.8", + "getHostname from URL should return 8.8.8.8 for http://8.8.8.8/", + "getHostname from URL should return 8.8.8.8 for http://8.8.8.8:3000", + "getHostname should return undefined for empty input" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/dist/shared/lib/get-hostname.test.js": { + "passed": [ + "getHostname from URL should return example.com for http://example.com", + "getHostname from URL should return example.com for http://example.com/", + "getHostname from URL should return example.com for http://example.com:3000", + "getHostname from URL should return example.com for https://example.com", + "getHostname from URL should return example.com for https://example.com/", + "getHostname from URL should return example.com for https://example.com:3000", + "getHostname from URL should return localhost for http://localhost", + "getHostname from URL should return localhost for http://localhost/", + "getHostname from URL should return localhost for http://localhost:3000", + "getHostname from URL should return 127.0.0.1 for http://127.0.0.1", + "getHostname from URL should return 127.0.0.1 for http://127.0.0.1/", + "getHostname from URL should return 127.0.0.1 for http://127.0.0.1:3000", + "getHostname from URL should return 8.8.8.8 for http://8.8.8.8", + "getHostname from URL should return 8.8.8.8 for http://8.8.8.8/", + "getHostname from URL should return 8.8.8.8 for http://8.8.8.8:3000", + "getHostname should return undefined for empty input" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/shared/lib/router/utils/app-paths.test.ts": { + "passed": [ + "normalizeRscPath enabled should normalize url with .rsc", + "normalizeRscPath enabled should normalize url with .rsc and searchparams", + "normalizeRscPath disabled should normalize url with .rsc", + "normalizeRscPath disabled should normalize url with .rsc and searchparams" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/dist/shared/lib/router/utils/app-paths.test.js": { + "passed": [ + "normalizeRscPath enabled should normalize url with .rsc", + "normalizeRscPath enabled should normalize url with .rsc and searchparams", + "normalizeRscPath disabled should normalize url with .rsc", + "normalizeRscPath disabled should normalize url with .rsc and searchparams" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/src/shared/lib/router/utils/route-regex.test.ts": { + "passed": [ + "getNamedRouteRegex should handle interception markers adjacent to dynamic path segments", + "getNamedRouteRegex should handle multi-level interception markers", + "getNamedRouteRegex should handle interception markers not adjacent to dynamic path segments", + "getNamedRouteRegex should handle optional dynamic path segments", + "getNamedRouteRegex should handle optional catch-all dynamic path segments" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "packages/next/dist/shared/lib/router/utils/route-regex.test.js": { + "passed": [ + "getNamedRouteRegex should handle interception markers adjacent to dynamic path segments", + "getNamedRouteRegex should handle multi-level interception markers", + "getNamedRouteRegex should handle interception markers not adjacent to dynamic path segments", + "getNamedRouteRegex should handle optional dynamic path segments", + "getNamedRouteRegex should handle optional catch-all dynamic path segments" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance-app/dynamic-error.test.ts": { + "passed": [ + "dynamic = \"error\" in devmode should show error overlay when dynamic is forced" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance-app/component-stack.test.ts": { + "passed": [], + "failed": [ + "Component Stack in error overlay should show a component stack on hydration error" + ], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance-app/app-hmr-changes.test.ts": { + "passed": [], + "failed": [ + "Error overlay - RSC build errors should handle successive HMR changes with errors correctly" + ], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance-app/error-message-url.test.ts": { + "passed": [ + "Error overlay - error message urls should be possible to click url in runtime error" + ], + "failed": [ + "Error overlay - error message urls should be possible to click url in build error" + ], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance-app/hydration-error.test.ts": { + "passed": [ + "Error overlay for hydration errors should show correct hydration error when client and server render different text", + "Error overlay for hydration errors should show correct hydration error when client renders an extra element", + "Error overlay for hydration errors should show correct hydration error when client renders an extra text node", + "Error overlay for hydration errors should show correct hydration error when server renders an extra element", + "Error overlay for hydration errors should show correct hydration error when server renders an extra text node", + "Error overlay for hydration errors should show correct hydration error when client renders an extra node inside Suspense content", + "Error overlay for hydration errors should not show a hydration error when using `useId` in a client component" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance-app/invalid-imports.test.ts": { + "passed": [], + "failed": [ + "Error Overlay invalid imports should show error when using styled-jsx in server component", + "Error Overlay invalid imports should show error when external package imports client-only in server component", + "Error Overlay invalid imports should show error when external package imports server-only in client component" + ], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance-app/ReactRefreshLogBox-scss.test.ts": { + "passed": [], + "failed": ["ReactRefreshLogBox app scss syntax errors"], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance-app/ReactRefreshLogBoxMisc.test.ts": { + "passed": [], + "failed": [], + "pending": [ + "ReactRefreshLogBox app with multiple children", + "ReactRefreshLogBox app component props errors", + "ReactRefreshLogBox app server-side only compilation errors" + ], + "runtimeError": false + }, + "test/development/acceptance-app/ReactRefreshModule.test.ts": { + "passed": [], + "failed": ["ReactRefreshModule app should allow any variable names"], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance-app/ReactRefresh.test.ts": { + "passed": [ + "ReactRefresh app can edit a component without losing state", + "ReactRefresh app cyclic dependencies" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance-app/editor-links.test.ts": { + "passed": [], + "failed": [ + "Error overlay - editor links should be possible to open source file on build error", + "Error overlay - editor links should be possible to open import trace files on RSC parse error", + "Error overlay - editor links should be possible to open import trace files on module not found error" + ], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance-app/ReactRefreshLogBox-builtins.test.ts": { + "passed": [ + "ReactRefreshLogBox app turbo Node.js builtins", + "ReactRefreshLogBox app turbo Module not found", + "ReactRefreshLogBox app turbo Module not found empty import trace" + ], + "failed": [ + "ReactRefreshLogBox app turbo Module not found missing global CSS" + ], + "pending": [ + "ReactRefreshLogBox app default Node.js builtins", + "ReactRefreshLogBox app default Module not found", + "ReactRefreshLogBox app default Module not found empty import trace", + "ReactRefreshLogBox app default Module not found missing global CSS" + ], + "runtimeError": false + }, + "test/development/acceptance-app/version-staleness.test.ts": { + "passed": [], + "failed": [], + "pending": [ + "Error Overlay version staleness should show version staleness in runtime error", + "Error Overlay version staleness should show version staleness in render error", + "Error Overlay version staleness should show version staleness in build error" + ], + "runtimeError": false + }, + "test/development/acceptance/component-stack.test.ts": { + "passed": [], + "failed": [ + "Component Stack in error overlay should show a component stack on hydration error" + ], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance-app/ReactRefreshRegression.test.ts": { + "passed": [ + "ReactRefreshRegression app can fast refresh a page with config" + ], + "failed": [ + "ReactRefreshRegression app can fast refresh a page with static generation", + "ReactRefreshRegression app can fast refresh a page with dynamic rendering", + "ReactRefreshRegression app shows an overlay for anonymous function server-side error", + "ReactRefreshRegression app shows an overlay for server-side error in server component", + "ReactRefreshRegression app shows an overlay for server-side error in client component", + "ReactRefreshRegression app custom loader mdx should have Fast Refresh enabled" + ], + "pending": [ + "ReactRefreshRegression app styled-components hydration mismatch" + ], + "runtimeError": false + }, + "test/development/acceptance/hydration-error.test.ts": { + "passed": [ + "Error overlay for hydration errors should show correct hydration error when client and server render different text" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance-app/server-components.test.ts": { + "passed": [ + "Error Overlay for server components createContext called in Server Component should show error when React.createContext is called", + "Error Overlay for server components createContext called in Server Component should show error when React.createContext is called in external package", + "Error Overlay for server components createContext called in Server Component should show error when createContext is called in external package", + "Error Overlay for server components React component hooks called in Server Component should show error when React. is called", + "Error Overlay for server components React component hooks called in Server Component should show error when React.experiment_useOptimistic is called", + "Error Overlay for server components React component hooks called in Server Component should show error when React.experiment_useOptimistic is renamed in destructuring", + "Error Overlay for server components React component hooks called in Server Component should show error when React. is called in external package", + "Error Overlay for server components React component hooks called in Server Component should show error when React client hook is called in external package", + "Error Overlay for server components Class component used in Server Component should show error when Class Component is used", + "Error Overlay for server components Class component used in Server Component should show error when React.PureComponent is rendered in external package", + "Error Overlay for server components Class component used in Server Component should show error when Component is rendered in external package", + "Error Overlay for server components Next.js component hooks called in Server Component should show error when useRouter is called", + "Error Overlay for server components Next.js component hooks called in Server Component should show error when useSearchParams is called", + "Error Overlay for server components Next.js component hooks called in Server Component should show error when useSelectedLayoutSegment is called", + "Error Overlay for server components Next.js component hooks called in Server Component should show error when useSelectedLayoutSegments is called", + "Error Overlay for server components Next.js component hooks called in Server Component should show error when usePathname is called" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance/ReactRefresh.test.ts": { + "passed": [ + "ReactRefresh can edit a component without losing state", + "ReactRefresh cyclic dependencies" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance/ReactRefreshLogBox-app-doc.test.ts": { + "passed": [ + "ReactRefreshLogBox turbo empty _app shows logbox", + "ReactRefreshLogBox turbo empty _document shows logbox" + ], + "failed": [ + "ReactRefreshLogBox turbo _app syntax error shows logbox", + "ReactRefreshLogBox turbo _document syntax error shows logbox" + ], + "pending": [ + "ReactRefreshLogBox default empty _app shows logbox", + "ReactRefreshLogBox default empty _document shows logbox", + "ReactRefreshLogBox default _app syntax error shows logbox", + "ReactRefreshLogBox default _document syntax error shows logbox" + ], + "runtimeError": false + }, + "test/development/acceptance/ReactRefreshLogBox-scss.test.ts": { + "passed": [], + "failed": [], + "pending": ["ReactRefreshLogBox scss syntax errors"], + "runtimeError": false + }, + "test/development/acceptance-app/error-recovery.test.ts": { + "passed": [], + "failed": [ + "Error recovery app turbo can recover from a syntax error without losing state", + "Error recovery app turbo client component can recover from syntax error", + "Error recovery app turbo server component can recover from syntax error", + "Error recovery app turbo can recover from a event handler error", + "Error recovery app turbo client component can recover from a component error", + "Error recovery app turbo server component can recover from a component error", + "Error recovery app turbo syntax > runtime error", + "Error recovery app turbo stuck error", + "Error recovery app turbo render error not shown right after syntax error", + "Error recovery app turbo displays build error on initial page load" + ], + "pending": [ + "Error recovery app default can recover from a syntax error without losing state", + "Error recovery app default client component can recover from syntax error", + "Error recovery app default server component can recover from syntax error", + "Error recovery app default can recover from a event handler error", + "Error recovery app default client component can recover from a component error", + "Error recovery app default server component can recover from a component error", + "Error recovery app default syntax > runtime error", + "Error recovery app default stuck error", + "Error recovery app default render error not shown right after syntax error", + "Error recovery app default displays build error on initial page load" + ], + "runtimeError": false + }, + "test/development/acceptance/ReactRefreshLogBox-builtins.test.ts": { + "passed": [ + "ReactRefreshLogBox turbo Node.js builtins", + "ReactRefreshLogBox turbo Module not found", + "ReactRefreshLogBox turbo Module not found (empty import trace)" + ], + "failed": [ + "ReactRefreshLogBox turbo Module not found (missing global CSS)" + ], + "pending": [ + "ReactRefreshLogBox default Node.js builtins", + "ReactRefreshLogBox default Module not found", + "ReactRefreshLogBox default Module not found (empty import trace)", + "ReactRefreshLogBox default Module not found (missing global CSS)" + ], + "runtimeError": false + }, + "test/development/acceptance/ReactRefreshLogBoxMisc.test.ts": { + "passed": [], + "failed": [], + "pending": [ + "ReactRefreshLogBox with multiple children", + "ReactRefreshLogBox component props errors", + "ReactRefreshLogBox server-side only compilation errors" + ], + "runtimeError": false + }, + "test/development/acceptance/ReactRefreshModule.test.ts": { + "passed": [], + "failed": ["ReactRefreshModule should allow any variable names"], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance/error-recovery.test.ts": { + "passed": [ + "ReactRefreshLogBox turbo logbox: can recover from a syntax error without losing state" + ], + "failed": [ + "ReactRefreshLogBox turbo logbox: can recover from a event handler error", + "ReactRefreshLogBox turbo logbox: can recover from a component error", + "ReactRefreshLogBox turbo render error not shown right after syntax error", + "ReactRefreshLogBox turbo stuck error", + "ReactRefreshLogBox turbo syntax > runtime error" + ], + "pending": [ + "ReactRefreshLogBox default logbox: can recover from a syntax error without losing state", + "ReactRefreshLogBox default logbox: can recover from a event handler error", + "ReactRefreshLogBox default logbox: can recover from a component error", + "ReactRefreshLogBox default render error not shown right after syntax error", + "ReactRefreshLogBox default stuck error", + "ReactRefreshLogBox default syntax > runtime error" + ], + "runtimeError": false + }, + "test/development/acceptance/ReactRefreshRegression.test.ts": { + "passed": [ + "ReactRefreshRegression styled-components hydration mismatch", + "ReactRefreshRegression can fast refresh a page with getStaticProps", + "ReactRefreshRegression can fast refresh a page with getServerSideProps" + ], + "failed": [ + "ReactRefreshRegression can fast refresh a page with config", + "ReactRefreshRegression shows an overlay for a server-side error", + "ReactRefreshRegression custom loader (mdx) should have Fast Refresh enabled" + ], + "pending": [], + "runtimeError": false + }, + "test/development/api-cors-with-rewrite/index.test.ts": { + "passed": [ + "Rewritten API Requests should pass OPTIONS requests to the api function should pass OPTIONS requests to the api function" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance-app/ReactRefreshLogBox.test.ts": { + "passed": [ + "ReactRefreshLogBox app turbo should strip whitespace correctly with newline", + "ReactRefreshLogBox app turbo module init error not shown", + "ReactRefreshLogBox app turbo boundaries", + "ReactRefreshLogBox app turbo Should not show __webpack_exports__ when exporting anonymous arrow function", + "ReactRefreshLogBox app turbo Unhandled errors and rejections opens up in the minimized state", + "ReactRefreshLogBox app turbo Server component errors should open up in fullscreen", + "ReactRefreshLogBox app turbo Import trace when module not found in layout", + "ReactRefreshLogBox app turbo Can't resolve @import in CSS file", + "ReactRefreshLogBox app turbo server component can recover from error thrown in the module", + "ReactRefreshLogBox app turbo client component can recover from error thrown in the module" + ], + "failed": [ + "ReactRefreshLogBox app turbo unterminated JSX", + "ReactRefreshLogBox app turbo conversion to class component (1)", + "ReactRefreshLogBox app turbo css syntax errors", + "ReactRefreshLogBox app turbo logbox: anchors links in error messages", + "ReactRefreshLogBox app turbo Call stack count is correct for server error", + "ReactRefreshLogBox app turbo Call stack count is correct for client error" + ], + "pending": [ + "ReactRefreshLogBox app default should strip whitespace correctly with newline", + "ReactRefreshLogBox app default module init error not shown", + "ReactRefreshLogBox app default boundaries", + "ReactRefreshLogBox app default internal package errors", + "ReactRefreshLogBox app default unterminated JSX", + "ReactRefreshLogBox app default conversion to class component (1)", + "ReactRefreshLogBox app default css syntax errors", + "ReactRefreshLogBox app default logbox: anchors links in error messages", + "ReactRefreshLogBox app default non-Error errors are handled properly", + "ReactRefreshLogBox app default Should not show __webpack_exports__ when exporting anonymous arrow function", + "ReactRefreshLogBox app default Unhandled errors and rejections opens up in the minimized state", + "ReactRefreshLogBox app default Call stack count is correct for server error", + "ReactRefreshLogBox app default Call stack count is correct for client error", + "ReactRefreshLogBox app default Server component errors should open up in fullscreen", + "ReactRefreshLogBox app default Import trace when module not found in layout", + "ReactRefreshLogBox app default Can't resolve @import in CSS file", + "ReactRefreshLogBox app default server component can recover from error thrown in the module", + "ReactRefreshLogBox app default client component can recover from error thrown in the module", + "ReactRefreshLogBox app turbo internal package errors", + "ReactRefreshLogBox app turbo non-Error errors are handled properly" + ], + "runtimeError": false + }, + "test/development/app-dir/multiple-compiles-single-route/multiple-compiles-single-route.test.ts": { + "passed": [ + "multiple-compiles-single-route should not compile additional matching paths" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/app-dir/basic/basic.test.ts": { + "passed": ["basic app-dir tests should reload app pages without error"], + "failed": [], + "pending": ["basic app-dir tests should reload app pages without error"], + "runtimeError": false + }, + "test/development/app-dir/strict-mode-enabled-by-default/strict-mode-enabled-by-default.test.ts": { + "passed": ["Strict Mode enabled by default should work using browser"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance/server-component-compiler-errors-in-pages.test.ts": { + "passed": [], + "failed": [ + "Error Overlay for server components compiler errors in pages importing 'next/headers' in pages", + "Error Overlay for server components compiler errors in pages importing 'server-only' in pages" + ], + "pending": [], + "runtimeError": false + }, + "test/development/basic/asset-prefix.test.ts": { + "passed": ["asset-prefix should load the app properly without reloading"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/app-render-error-log/app-render-error-log.test.ts": { + "passed": [], + "failed": [ + "app-render-error-log should log the correct values on app-render error", + "app-render-error-log should log the correct values on app-render error with edge runtime" + ], + "pending": [], + "runtimeError": false + }, + "test/development/basic/define-class-fields.test.ts": { + "passed": [ + "useDefineForClassFields SWC option tsx should compile with useDefineForClassFields enabled", + "useDefineForClassFields SWC option Initializes resident to undefined after the call to 'super()' when with useDefineForClassFields enabled", + "useDefineForClassFields SWC option set accessors from base classes won’t get triggered with useDefineForClassFields enabled" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/basic/emotion-swc.test.ts": { + "passed": ["emotion SWC option should have styling from the css prop"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/basic/barrel-optimization.test.ts": { + "passed": [ + "optimizePackageImports should handle recursive wildcard exports" + ], + "failed": [ + "optimizePackageImports app - should render the icons correctly without creating all the modules", + "optimizePackageImports pages - should render the icons correctly without creating all the modules", + "optimizePackageImports should reuse the transformed barrel meta file from SWC", + "optimizePackageImports should support visx" + ], + "pending": [], + "runtimeError": false + }, + "test/development/api-route-errors/index.test.ts": { + "passed": [], + "failed": [ + "api-route-errors cli output error", + "api-route-errors cli output uncaught exception", + "api-route-errors cli output unhandled rejection" + ], + "pending": [], + "runtimeError": false + }, + "test/development/acceptance/ReactRefreshLogBox.test.ts": { + "passed": [ + "ReactRefreshLogBox turbo should strip whitespace correctly with newline", + "ReactRefreshLogBox turbo module init error not shown", + "ReactRefreshLogBox turbo boundaries" + ], + "failed": [ + "ReactRefreshLogBox turbo unterminated JSX", + "ReactRefreshLogBox turbo conversion to class component (1)", + "ReactRefreshLogBox turbo css syntax errors", + "ReactRefreshLogBox turbo logbox: anchors links in error messages", + "ReactRefreshLogBox turbo non-Error errors are handled properly" + ], + "pending": [ + "ReactRefreshLogBox default should strip whitespace correctly with newline", + "ReactRefreshLogBox default module init error not shown", + "ReactRefreshLogBox default boundaries", + "ReactRefreshLogBox default internal package errors", + "ReactRefreshLogBox default unterminated JSX", + "ReactRefreshLogBox default conversion to class component (1)", + "ReactRefreshLogBox default css syntax errors", + "ReactRefreshLogBox default logbox: anchors links in error messages", + "ReactRefreshLogBox default non-Error errors are handled properly", + "ReactRefreshLogBox turbo internal package errors" + ], + "runtimeError": false + }, + "test/development/basic/legacy-decorators.test.ts": { + "passed": [ + "Legacy decorators SWC option should compile with legacy decorators enabled" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/basic/misc.test.ts": { + "passed": [ + "misc basic dev tests, basePath: \"\" should set process.env.NODE_ENV in development", + "misc basic dev tests, basePath: \"\" should allow access to public files", + "misc basic dev tests, basePath: \"\" With Security Related Issues should not allow accessing files outside .next/static and .next/server directory", + "misc basic dev tests, basePath: \"\" With Security Related Issues should handle encoded / value for trailing slash correctly", + "misc basic dev tests, basePath: \"\" Development Logs should warn when prefetch is true", + "misc basic dev tests, basePath: \"\" Development Logs should not warn when prefetch is false", + "misc basic dev tests, basePath: \"\" Development Logs should not warn when prefetch is not specified", + "misc basic dev tests, basePath: \"/docs\" should set process.env.NODE_ENV in development", + "misc basic dev tests, basePath: \"/docs\" should allow access to public files", + "misc basic dev tests, basePath: \"/docs\" With Security Related Issues should not allow accessing files outside .next/static and .next/server directory", + "misc basic dev tests, basePath: \"/docs\" With Security Related Issues should handle encoded / value for trailing slash correctly", + "misc basic dev tests, basePath: \"/docs\" Development Logs should warn when prefetch is true", + "misc basic dev tests, basePath: \"/docs\" Development Logs should not warn when prefetch is false", + "misc basic dev tests, basePath: \"/docs\" Development Logs should not warn when prefetch is not specified" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/basic/next-rs-api.test.ts": { + "passed": [ + "next.rs api should detect the correct routes", + "next.rs api should allow to write root page to disk", + "next.rs api should allow to write pages edge api to disk", + "next.rs api should allow to write pages Node.js api to disk", + "next.rs api should allow to write app Node.js page to disk", + "next.rs api should allow to write pages edge page to disk", + "next.rs api should allow to write pages Node.js page to disk", + "next.rs api should allow to write app edge route to disk", + "next.rs api should allow to write app Node.js route to disk", + "next.rs api should have working HMR on client-side change on a page 0", + "next.rs api should have working HMR on client-side change on a page 1", + "next.rs api should have working HMR on client-side change on a page 2", + "next.rs api should have working HMR on server-side change on a page 0", + "next.rs api should have working HMR on server-side change on a page 1", + "next.rs api should have working HMR on server-side change on a page 2", + "next.rs api should have working HMR on client and server-side change on a page 0", + "next.rs api should have working HMR on client and server-side change on a page 1", + "next.rs api should have working HMR on client and server-side change on a page 2", + "next.rs api should have working HMR on client-side change on a app page 0", + "next.rs api should have working HMR on client-side change on a app page 1", + "next.rs api should have working HMR on client-side change on a app page 2", + "next.rs api should have working HMR on server-side change on a app page 0", + "next.rs api should have working HMR on server-side change on a app page 1", + "next.rs api should have working HMR on server-side change on a app page 2" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/basic/node-builtins.test.ts": { + "passed": [ + "node builtins should have polyfilled node.js builtins for the browser correctly", + "node builtins should have polyfilled node.js builtins for the browser correctly in client component", + "node builtins should support node.js builtins", + "node builtins should support node.js builtins prefixed by node:", + "node builtins should support node.js builtins in server component", + "node builtins should support node.js builtins prefixed by node: in server component" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/basic/project-directory-rename.test.ts": { + "passed": [], + "failed": [], + "pending": [ + "Project Directory Renaming should detect project dir rename and restart" + ], + "runtimeError": false + }, + "test/development/basic/styled-components-disabled.test.ts": { + "passed": [], + "failed": [ + "styled-components SWC transform should have hydration mismatch with styled-components transform disabled" + ], + "pending": [], + "runtimeError": false + }, + "test/development/basic/gssp-ssr-change-reloading/test/index.test.ts": { + "passed": [ + "GS(S)P Server-Side Change Reloading should not reload page when client-side is changed too GSP", + "GS(S)P Server-Side Change Reloading should update page when getStaticProps is changed only for /index", + "GS(S)P Server-Side Change Reloading should not reload page when client-side is changed too GSSP", + "GS(S)P Server-Side Change Reloading should update page when getServerSideProps is changed only" + ], + "failed": [ + "GS(S)P Server-Side Change Reloading should update page when getStaticProps is changed only", + "GS(S)P Server-Side Change Reloading should show indicator when re-fetching data", + "GS(S)P Server-Side Change Reloading should update page when getStaticPaths is changed only", + "GS(S)P Server-Side Change Reloading should update page when getStaticProps is changed only for /another/index", + "GS(S)P Server-Side Change Reloading should keep scroll position when updating from change in getStaticProps", + "GS(S)P Server-Side Change Reloading should update on props error in getStaticProps", + "GS(S)P Server-Side Change Reloading should update on thrown error in getStaticProps", + "GS(S)P Server-Side Change Reloading should refresh data when server import is updated" + ], + "pending": [], + "runtimeError": false + }, + "test/development/app-hmr/hmr.test.ts": { + "passed": [ + "app-dir-hmr filesystem changes should not continously poll when hitting a not found page", + "app-dir-hmr filesystem changes should not break when renaming a folder", + "app-dir-hmr filesystem changes should have no unexpected action error for hmr" + ], + "failed": [ + "app-dir-hmr filesystem changes should update server components pages when env files is changed (nodejs)", + "app-dir-hmr filesystem changes should update server components pages when env files is changed (edge)" + ], + "pending": [], + "runtimeError": true + }, + "test/development/acceptance-app/rsc-build-errors.test.ts": { + "passed": [ + "Error overlay - RSC build errors should error when page component export is not valid", + "Error overlay - RSC build errors should error when page component export is not valid on initial load", + "Error overlay - RSC build errors should error for invalid undefined module retuning from next dynamic" + ], + "failed": [ + "Error overlay - RSC build errors should throw an error when getServerSideProps is used", + "Error overlay - RSC build errors should throw an error when metadata export is used in client components", + "Error overlay - RSC build errors should throw an error when metadata exports are used together in server components", + "Error overlay - RSC build errors should throw an error when \"use client\" is on the top level but after other expressions", + "Error overlay - RSC build errors should throw an error when \"Component\" is imported in server components", + "Error overlay - RSC build errors should allow to use and handle rsc poisoning client-only", + "Error overlay - RSC build errors should allow to use and handle rsc poisoning server-only", + "Error overlay - RSC build errors should throw an error when error file is a server component", + "Error overlay - RSC build errors should throw an error when error file is a server component with empty error file", + "Error overlay - RSC build errors should freeze parent resolved metadata to avoid mutating in generateMetadata", + "Error overlay - RSC build errors should show which import caused an error in node_modules" + ], + "pending": [ + "Error overlay - RSC build errors should throw an error when getStaticProps is used" + ], + "runtimeError": false + }, + "test/development/basic/next-dynamic.test.ts": { + "passed": [ + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import default behavior should render even there are no physical chunk exists", + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import default behavior should SSR nested dynamic components and skip nonSSR ones", + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import default behavior should hydrate nested chunks", + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import default behavior should render the component Head content", + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import ssr:false option should not render loading on the server side", + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import ssr:true option should render the component on client side", + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import custom chunkfilename should render the component on client side", + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import custom loading should render custom loading on the server side when `ssr:false` and `loading` is provided", + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import custom loading should render the component on client side", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import default behavior should SSR nested dynamic components and skip nonSSR ones", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import default behavior should render the component Head content", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import ssr:false option should not render loading on the server side", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import ssr:true option should render the component on client side", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import custom chunkfilename should render the component on client side", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import custom loading should render custom loading on the server side when `ssr:false` and `loading` is provided", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import default behavior should render even there are no physical chunk exists", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import default behavior should SSR nested dynamic components and skip nonSSR ones", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import default behavior should hydrate nested chunks", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import default behavior should render the component Head content", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import ssr:false option should not render loading on the server side", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import ssr:true option should render the component on client side", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import custom chunkfilename should render the component on client side", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import custom loading should render custom loading on the server side when `ssr:false` and `loading` is provided", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import custom loading should render the component on client side" + ], + "failed": [ + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import default behavior should render dynamic import components", + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import default behavior should render dynamic import components using a function as first parameter", + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import ssr:false option should render the component on client side", + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import ssr:true option Should render the component on the server side", + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import custom chunkfilename should render the correct filename", + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import Multiple modules should only include the rendered module script tag", + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import Multiple modules should only load the rendered module in the browser", + "basic next/dynamic usage, basePath: \"\" with \"swc\" compiler Dynamic import Multiple modules should only render one bundle if component is used multiple times", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import default behavior should render dynamic import components", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import default behavior should render dynamic import components using a function as first parameter", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import default behavior should render even there are no physical chunk exists", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import default behavior should hydrate nested chunks", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import ssr:false option should render the component on client side", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import ssr:true option Should render the component on the server side", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import custom chunkfilename should render the correct filename", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import custom loading should render the component on client side", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import Multiple modules should only include the rendered module script tag", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import Multiple modules should only load the rendered module in the browser", + "basic next/dynamic usage, basePath: \"/docs\" with \"swc\" compiler Dynamic import Multiple modules should only render one bundle if component is used multiple times", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import default behavior should render dynamic import components", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import default behavior should render dynamic import components using a function as first parameter", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import ssr:false option should render the component on client side", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import ssr:true option Should render the component on the server side", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import custom chunkfilename should render the correct filename", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import Multiple modules should only include the rendered module script tag", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import Multiple modules should only load the rendered module in the browser", + "basic next/dynamic usage, basePath: \"\" with \"document.getInitialProps\" compiler Dynamic import Multiple modules should only render one bundle if component is used multiple times", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import default behavior should render dynamic import components", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import default behavior should render dynamic import components using a function as first parameter", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import default behavior should render even there are no physical chunk exists", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import default behavior should SSR nested dynamic components and skip nonSSR ones", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import default behavior should hydrate nested chunks", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import default behavior should render the component Head content", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import ssr:false option should not render loading on the server side", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import ssr:false option should render the component on client side", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import ssr:true option Should render the component on the server side", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import ssr:true option should render the component on client side", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import custom chunkfilename should render the correct filename", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import custom chunkfilename should render the component on client side", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import custom loading should render custom loading on the server side when `ssr:false` and `loading` is provided", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import custom loading should render the component on client side", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import Multiple modules should only include the rendered module script tag", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import Multiple modules should only load the rendered module in the browser", + "basic next/dynamic usage, basePath: \"\" with \"babel\" compiler Dynamic import Multiple modules should only render one bundle if component is used multiple times" + ], + "pending": [], + "runtimeError": true + }, + "test/development/basic/hmr.test.ts": { + "passed": [ + "basic HMR, basePath: \"\" should show hydration error correctly", + "basic HMR, basePath: \"\" should have correct router.isReady for auto-export page", + "basic HMR, basePath: \"\" should have correct router.isReady for getStaticProps page", + "basic HMR, basePath: \"\" Hot Module Reloading editing a page should detect the changes and display it", + "basic HMR, basePath: \"\" Hot Module Reloading editing a page should not reload unrelated pages", + "basic HMR, basePath: \"\" Hot Module Reloading editing a page should update styles correctly", + "basic HMR, basePath: \"\" Hot Module Reloading editing a page should update styles in a stateful component correctly", + "basic HMR, basePath: \"\" Hot Module Reloading editing a page should update styles in a dynamic component correctly", + "basic HMR, basePath: \"\" Error Recovery should not continously poll a custom error page", + "basic HMR, basePath: \"/docs\" should show hydration error correctly", + "basic HMR, basePath: \"/docs\" should have correct router.isReady for auto-export page", + "basic HMR, basePath: \"/docs\" should have correct router.isReady for getStaticProps page", + "basic HMR, basePath: \"/docs\" Hot Module Reloading editing a page should detect the changes and display it", + "basic HMR, basePath: \"/docs\" Hot Module Reloading editing a page should not reload unrelated pages", + "basic HMR, basePath: \"/docs\" Hot Module Reloading editing a page should update styles correctly", + "basic HMR, basePath: \"/docs\" Hot Module Reloading editing a page should update styles in a stateful component correctly", + "basic HMR, basePath: \"/docs\" Hot Module Reloading editing a page should update styles in a dynamic component correctly", + "basic HMR, basePath: \"/docs\" Error Recovery should not continously poll a custom error page" + ], + "failed": [ + "basic HMR, basePath: \"\" Hot Module Reloading delete a page and add it back should load the page properly", + "basic HMR, basePath: \"\" Error Recovery should recover from 404 after a page has been added", + "basic HMR, basePath: \"\" Error Recovery should recover from 404 after a page has been added with dynamic segments", + "basic HMR, basePath: \"\" Error Recovery should detect syntax errors and recover", + "basic HMR, basePath: \"\" Error Recovery should show the error on all pages", + "basic HMR, basePath: \"\" Error Recovery should detect runtime errors on the module scope", + "basic HMR, basePath: \"\" Error Recovery should recover from errors in the render function", + "basic HMR, basePath: \"\" Error Recovery should recover after exporting an invalid page", + "basic HMR, basePath: \"\" Error Recovery should recover after a bad return from the render function", + "basic HMR, basePath: \"\" Error Recovery should recover after undefined exported as default", + "basic HMR, basePath: \"\" Error Recovery should recover after webpack parse error in an imported file", + "basic HMR, basePath: \"\" Error Recovery should recover after loader parse error in an imported file", + "basic HMR, basePath: \"\" Error Recovery should recover from errors in getInitialProps in client", + "basic HMR, basePath: \"\" Error Recovery should recover after an error reported via SSR", + "basic HMR, basePath: \"\" Full reload should warn about full reload in cli output - anonymous page function", + "basic HMR, basePath: \"\" Full reload should warn about full reload in cli output - runtime-error", + "basic HMR, basePath: \"\" should have client HMR events in trace file", + "basic HMR, basePath: \"\" should have correct compile timing after fixing error", + "basic HMR, basePath: \"/docs\" Hot Module Reloading delete a page and add it back should load the page properly", + "basic HMR, basePath: \"/docs\" Error Recovery should recover from 404 after a page has been added", + "basic HMR, basePath: \"/docs\" Error Recovery should recover from 404 after a page has been added with dynamic segments", + "basic HMR, basePath: \"/docs\" Error Recovery should detect syntax errors and recover", + "basic HMR, basePath: \"/docs\" Error Recovery should show the error on all pages", + "basic HMR, basePath: \"/docs\" Error Recovery should detect runtime errors on the module scope", + "basic HMR, basePath: \"/docs\" Error Recovery should recover from errors in the render function", + "basic HMR, basePath: \"/docs\" Error Recovery should recover after exporting an invalid page", + "basic HMR, basePath: \"/docs\" Error Recovery should recover after a bad return from the render function", + "basic HMR, basePath: \"/docs\" Error Recovery should recover after undefined exported as default", + "basic HMR, basePath: \"/docs\" Error Recovery should recover after webpack parse error in an imported file", + "basic HMR, basePath: \"/docs\" Error Recovery should recover after loader parse error in an imported file", + "basic HMR, basePath: \"/docs\" Error Recovery should recover from errors in getInitialProps in client", + "basic HMR, basePath: \"/docs\" Error Recovery should recover after an error reported via SSR", + "basic HMR, basePath: \"/docs\" Full reload should warn about full reload in cli output - anonymous page function", + "basic HMR, basePath: \"/docs\" Full reload should warn about full reload in cli output - runtime-error", + "basic HMR, basePath: \"/docs\" should have client HMR events in trace file", + "basic HMR, basePath: \"/docs\" should have correct compile timing after fixing error" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/404-page-custom-error/test/index.test.js": { + "passed": [ + "Default 404 Page with custom _error server mode should build successfully", + "Default 404 Page with custom _error server mode should respond to 404 correctly", + "Default 404 Page with custom _error server mode should render error correctly", + "Default 404 Page with custom _error server mode should render index page normal", + "Default 404 Page with custom _error server mode should set pages404 in routes-manifest correctly", + "Default 404 Page with custom _error server mode should have output 404.html", + "Default 404 Page with custom _error dev mode should respond to 404 correctly", + "Default 404 Page with custom _error dev mode should render error correctly", + "Default 404 Page with custom _error dev mode should render index page normal" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/404-page-ssg/test/index.test.js": { + "passed": [ + "404 Page Support SSG server mode should build successfully", + "404 Page Support SSG server mode should respond to 404 correctly", + "404 Page Support SSG server mode should render error correctly", + "404 Page Support SSG server mode should not show an error in the logs for 404 SSG", + "404 Page Support SSG server mode should render index page normal", + "404 Page Support SSG server mode should not revalidate custom 404 page", + "404 Page Support SSG server mode should set pages404 in routes-manifest correctly", + "404 Page Support SSG server mode should have 404 page in prerender-manifest", + "404 Page Support SSG dev mode should respond to 404 correctly", + "404 Page Support SSG dev mode should render error correctly", + "404 Page Support SSG dev mode should not show an error in the logs for 404 SSG", + "404 Page Support SSG dev mode should render index page normal" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/404-page-app/test/index.test.js": { + "passed": [ + "404 Page Support with _app production mode should build successfully", + "404 Page Support with _app production mode should not output static 404 if _app has getInitialProps", + "404 Page Support with _app production mode specify to use the 404 page still in the routes-manifest", + "404 Page Support with _app production mode should still use 404 page", + "404 Page Support with _app dev mode should not show pages/404 GIP error if _app has GIP" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/amp-export-validation/test/index.test.js": { + "passed": [ + "AMP Validation on Export should have shown errors during build" + ], + "failed": ["AMP Validation on Export should export AMP pages"], + "pending": [ + "AMP Validation on Export shows AMP warning without throwing error", + "AMP Validation on Export throws error on AMP error", + "AMP Validation on Export shows warning and error when throwing error" + ], + "runtimeError": false + }, + "test/integration/amphtml-custom-validator/test/index.test.js": { + "passed": ["AMP Custom Validator should build and start successfully"], + "failed": ["AMP Custom Validator should run in dev mode successfully"], + "pending": [], + "runtimeError": false + }, + "test/integration/amphtml-custom-optimizer/test/index.test.js": { + "passed": [ + "AMP Custom Optimizer should build and start for static page", + "AMP Custom Optimizer should build and start for dynamic page" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/amphtml-fragment-style/test/index.test.js": { + "passed": [ + "AMP Fragment Styles adds styles from fragment in AMP mode correctly" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/api-body-parser/test/index.test.js": { + "passed": [ + "should parse JSON body", + "should not throw if request body is already parsed in custom middleware", + "should not throw if request's content-type is invalid" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/500-page/test/gsp-gssp.test.js": { + "passed": [ + "does not show error with getStaticProps in pages/500 build", + "does not show error with getStaticProps in pages/500 dev", + "shows error with getServerSideProps in pages/500 build", + "shows error with getServerSideProps in pages/500 dev", + "does build 500 statically with getInitialProps in _app and getStaticProps in pages/500", + "does not build 500 statically with no pages/500 and getServerSideProps in _error" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/api-catch-all/test/index.test.js": { + "passed": [ + "API routes dev support should return data when catch-all", + "API routes dev support should return redirect when catch-all with index and trailing slash", + "API routes dev support should return data when catch-all with index and trailing slash", + "API routes dev support should return data when catch-all with index and no trailing slash", + "API routes Server support should return data when catch-all", + "API routes Server support should return redirect when catch-all with index and trailing slash", + "API routes Server support should return data when catch-all with index and trailing slash", + "API routes Server support should return data when catch-all with index and no trailing slash" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/app-aspath/test/index.test.js": { + "passed": [ + "App asPath should not have any changes in asPath after a bundle rebuild" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/amphtml/test/index.test.js": { + "passed": ["AMP Usage production mode should have amp optimizer in trace"], + "failed": [ + "AMP Usage production mode should not contain missing files warning", + "AMP Usage production mode With basic usage should render the page", + "AMP Usage production mode With basic AMP usage should render the page as valid AMP", + "AMP Usage production mode With basic AMP usage should render the page without leaving render target", + "AMP Usage production mode With basic AMP usage should not output client pages for AMP only", + "AMP Usage production mode With basic AMP usage should not output client pages for AMP only with config exported after declaration", + "AMP Usage production mode With basic AMP usage should drop custom scripts", + "AMP Usage production mode With basic AMP usage should not drop custom amp scripts", + "AMP Usage production mode With basic AMP usage should optimize clean", + "AMP Usage production mode With basic AMP usage should auto import extensions", + "AMP Usage production mode With AMP context should render the normal page that uses the AMP hook", + "AMP Usage production mode With AMP context should render the AMP page that uses the AMP hook", + "AMP Usage production mode With AMP context should render nested normal page with AMP hook", + "AMP Usage production mode With AMP context should render nested AMP page with AMP hook", + "AMP Usage production mode canonical amphtml should render link rel amphtml", + "AMP Usage production mode canonical amphtml should render amphtml from provided rel link", + "AMP Usage production mode canonical amphtml should render link rel amphtml with existing query", + "AMP Usage production mode canonical amphtml should render the AMP page that uses the AMP hook", + "AMP Usage production mode canonical amphtml should render a canonical regardless of amp-only status (explicit)", + "AMP Usage production mode canonical amphtml should not render amphtml link tag with no AMP page", + "AMP Usage production mode canonical amphtml should remove conflicting amp tags", + "AMP Usage production mode canonical amphtml should allow manually setting canonical", + "AMP Usage production mode canonical amphtml should allow manually setting amphtml rel", + "AMP Usage production mode combined styles should combine style tags", + "AMP Usage production mode combined styles should remove sourceMaps from styles", + "AMP Usage AMP dev no-warn should not warn on valid amp", + "AMP Usage AMP dev mode should navigate from non-AMP to AMP without error", + "AMP Usage AMP dev mode should add data-ampdevmode to development script tags", + "AMP Usage AMP dev mode should detect amp validator warning on invalid amp", + "AMP Usage AMP dev mode should not contain missing files warning" + ], + "pending": [ + "AMP Usage AMP dev mode should detect the changes and display it", + "AMP Usage AMP dev mode should detect changes and refresh an AMP page", + "AMP Usage AMP dev mode should detect changes to component and refresh an AMP page", + "AMP Usage AMP dev mode should not reload unless the page is edited for an AMP page", + "AMP Usage AMP dev mode should detect changes and refresh a hybrid AMP page", + "AMP Usage AMP dev mode should detect changes and refresh an AMP page at root pages/" + ], + "runtimeError": false + }, + "test/integration/app-document-add-hmr/test/index.test.js": { + "passed": [], + "failed": [], + "pending": [ + "_app/_document add HMR should HMR when _app is added", + "_app/_document add HMR should HMR when _document is added" + ], + "runtimeError": false + }, + "test/integration/app-config-asset-prefix/test/index.test.js": { + "passed": [ + "App assetPrefix config should render correctly with assetPrefix: \"/\"" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/amphtml-ssg/test/index.test.js": { + "passed": [ + "AMP SSG Support server mode should load an amp first page correctly", + "AMP SSG Support server mode should load a hybrid amp page without query correctly", + "AMP SSG Support server mode should load dynamic hybrid SSG/AMP page", + "AMP SSG Support server mode should load dynamic hybrid SSG/AMP page with trailing slash", + "AMP SSG Support server mode should load dynamic hybrid SSG/AMP page with query", + "AMP SSG Support server mode should load a hybrid amp page with query correctly", + "AMP SSG Support server mode should output prerendered files correctly during build", + "AMP SSG Support dev mode should load an amp first page correctly", + "AMP SSG Support dev mode should load a hybrid amp page without query correctly", + "AMP SSG Support dev mode should load dynamic hybrid SSG/AMP page", + "AMP SSG Support dev mode should load dynamic hybrid SSG/AMP page with trailing slash", + "AMP SSG Support dev mode should load dynamic hybrid SSG/AMP page with query", + "AMP SSG Support dev mode should load a hybrid amp page with query correctly", + "AMP SSG Support export mode should have copied SSG files correctly" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/app-document-remove-hmr/test/index.test.js": { + "passed": [ + "_app removal HMR should HMR when _app is removed", + "_app removal HMR should HMR when _document is removed" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/app-document-import-order/test/index.test.js": { + "passed": [ + "Root components import order root components should be imported in this order _document > _app > page in order to respect side effects", + "on dev server root components should be imported in this order _document > _app > page in order to respect side effects" + ], + "failed": [ + "Root components import order _app chunks should be attached to de dom before page chunks", + "on dev server _app chunks should be attached to de dom before page chunks" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/api-support/test/index.test.js": { + "passed": [ + "API routes dev support should handle proxying to self correctly", + "API routes dev support should respond from /api/auth/[...nextauth] correctly", + "API routes dev support should handle 204 status correctly", + "API routes dev support should render page", + "API routes dev support should return 404 for undefined path", + "API routes dev support should not conflict with /api routes", + "API routes dev support should set cors headers when adding cors middleware", + "API routes dev support should work with index api", + "API routes dev support should return custom error", + "API routes dev support should throw Internal Server Error", + "API routes dev support should throw Internal Server Error (async)", + "API routes dev support should parse JSON body", + "API routes dev support should special-case empty JSON body", + "API routes dev support should support boolean for JSON in api page", + "API routes dev support should support undefined response body", + "API routes dev support should support string in JSON response body", + "API routes dev support should support null in JSON response body", + "API routes dev support should return error with invalid JSON", + "API routes dev support should parse bigger body then 1mb", + "API routes dev support should support etag spec", + "API routes dev support should parse urlencoded body", + "API routes dev support should parse body in handler", + "API routes dev support should parse body with config", + "API routes dev support should show friendly error for invalid redirect", + "API routes dev support should show friendly error in case of passing null as first argument redirect", + "API routes dev support should redirect with status code 307", + "API routes dev support should redirect to login", + "API routes dev support should redirect with status code 301", + "API routes dev support should return empty query object", + "API routes dev support should parse query correctly", + "API routes dev support should return empty cookies object", + "API routes dev support should return cookies object", + "API routes dev support should return 200 on POST on pages", + "API routes dev support should return JSON on post on API", + "API routes dev support should return data on dynamic route", + "API routes dev support should work with dynamic params and search string", + "API routes dev support should work with dynamic params and search string like lambda", + "API routes dev support should prioritize a non-dynamic page", + "API routes dev support should return data on dynamic nested route", + "API routes dev support should 404 on optional dynamic api page", + "API routes dev support should return data on dynamic optional nested route", + "API routes dev support should work with child_process correctly", + "API routes dev support should work with nullable payload", + "API routes dev support should warn if response body is larger than 4MB", + "API routes dev support should not warn if response body is larger than 4MB with responseLimit config = false", + "API routes dev support should warn with configured size if response body is larger than configured size", + "API routes dev support should compile only server code in development", + "API routes dev support should show warning when the API resolves without ending the request in dev mode", + "API routes dev support should not show warning when the API resolves and the response is piped", + "API routes dev support should show false positive warning if not using externalResolver flag", + "API routes dev support should not show warning if using externalResolver flag", + "API routes Server support should handle proxying to self correctly", + "API routes Server support should respond from /api/auth/[...nextauth] correctly", + "API routes Server support should handle 204 status correctly", + "API routes Server support should render page", + "API routes Server support should return 404 for undefined path", + "API routes Server support should not conflict with /api routes", + "API routes Server support should set cors headers when adding cors middleware", + "API routes Server support should work with index api", + "API routes Server support should return custom error", + "API routes Server support should throw Internal Server Error", + "API routes Server support should throw Internal Server Error (async)", + "API routes Server support should parse JSON body", + "API routes Server support should special-case empty JSON body", + "API routes Server support should support boolean for JSON in api page", + "API routes Server support should support undefined response body", + "API routes Server support should support string in JSON response body", + "API routes Server support should support null in JSON response body", + "API routes Server support should return error with invalid JSON", + "API routes Server support should parse bigger body then 1mb", + "API routes Server support should support etag spec", + "API routes Server support should parse urlencoded body", + "API routes Server support should parse body in handler", + "API routes Server support should parse body with config", + "API routes Server support should show friendly error for invalid redirect", + "API routes Server support should show friendly error in case of passing null as first argument redirect", + "API routes Server support should redirect with status code 307", + "API routes Server support should redirect to login", + "API routes Server support should redirect with status code 301", + "API routes Server support should return empty query object", + "API routes Server support should parse query correctly", + "API routes Server support should return empty cookies object", + "API routes Server support should return cookies object", + "API routes Server support should return 200 on POST on pages", + "API routes Server support should return JSON on post on API", + "API routes Server support should return data on dynamic route", + "API routes Server support should work with dynamic params and search string", + "API routes Server support should work with dynamic params and search string like lambda", + "API routes Server support should prioritize a non-dynamic page", + "API routes Server support should return data on dynamic nested route", + "API routes Server support should 404 on optional dynamic api page", + "API routes Server support should return data on dynamic optional nested route", + "API routes Server support should work with child_process correctly", + "API routes Server support should work with nullable payload", + "API routes Server support should warn if response body is larger than 4MB", + "API routes Server support should not warn if response body is larger than 4MB with responseLimit config = false", + "API routes Server support should warn with configured size if response body is larger than configured size", + "API routes Server support should show warning with next export", + "API routes Server support should build api routes" + ], + "failed": [], + "pending": [ + "API routes dev support should return error exceeded body limit", + "API routes Server support should return error exceeded body limit" + ], + "runtimeError": false + }, + "test/integration/app-document-style-fragment/test/index.test.js": { + "passed": [ + "Custom Document Fragment Styles correctly adds styles from fragment styles key" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/app-dir-export/test/config.test.ts": { + "passed": [ + "app dir with output export (next dev / next build) should throw when exportPathMap configured", + "app dir with output export (next dev / next build) should warn about \"next export\" is no longer needed with config", + "app dir with output export (next dev / next build) should error when \"next export -o \" is used with config", + "app dir with output export (next dev / next build) should error when no config.output detected for next export", + "app dir with output export (next dev / next build) should correctly emit exported assets to config.distDir" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/app-dir-export/test/dynamic-missing-gsp-dev.test.ts": { + "passed": [], + "failed": [ + "should error when dynamic route is missing generateStaticParams", + "should error when client component has generateStaticParams" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/404-page/test/index.test.js": { + "passed": [ + "404 Page Support dev mode should use pages/404", + "404 Page Support dev mode should set correct status code with pages/404", + "404 Page Support dev mode should use pages/404 for .d.ts file", + "404 Page Support dev mode should not error when visited directly", + "404 Page Support dev mode should render _error for a 500 error still", + "404 Page Support server mode should use pages/404", + "404 Page Support server mode should set correct status code with pages/404", + "404 Page Support server mode should use pages/404 for .d.ts file", + "404 Page Support server mode should not error when visited directly", + "404 Page Support server mode should render _error for a 500 error still", + "404 Page Support server mode should output 404.html during build", + "404 Page Support server mode should add /404 to pages-manifest correctly", + "404 Page Support should not cache for custom 404 page with gssp and revalidate disabled", + "404 Page Support should not cache for custom 404 page with gssp and revalidate enabled", + "404 Page Support should not cache for custom 404 page without gssp", + "404 Page Support falls back to _error correctly without pages/404", + "404 Page Support shows error with getInitialProps in pages/404 build", + "404 Page Support shows error with getInitialProps in pages/404 dev", + "404 Page Support does not show error with getStaticProps in pages/404 build", + "404 Page Support does not show error with getStaticProps in pages/404 dev", + "404 Page Support shows error with getServerSideProps in pages/404 build", + "404 Page Support shows error with getServerSideProps in pages/404 dev" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/app-dir-export/test/dynamic-missing-gsp-prod.test.ts": { + "passed": [], + "failed": [ + "should error when dynamic route is missing generateStaticParams", + "should error when client component has generateStaticParams" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/500-page/test/index.test.js": { + "passed": [ + "500 Page Support dev mode should use pages/500", + "500 Page Support dev mode should set correct status code with pages/500", + "500 Page Support dev mode should not error when visited directly", + "500 Page Support server mode should use pages/500", + "500 Page Support server mode should set correct status code with pages/500", + "500 Page Support server mode should not error when visited directly", + "500 Page Support server mode should output 500.html during build", + "500 Page Support server mode should add /500 to pages-manifest correctly", + "500 Page Support does not build 500 statically with getInitialProps in _app", + "500 Page Support builds 500 statically by default with no pages/500", + "500 Page Support builds 500 statically by default with no pages/500 and custom _error without getInitialProps", + "500 Page Support does not build 500 statically with no pages/500 and custom getInitialProps in _error", + "500 Page Support does not build 500 statically with no pages/500 and custom getInitialProps in _error and _app", + "500 Page Support shows error with getInitialProps in pages/500 build", + "500 Page Support shows error with getInitialProps in pages/500 dev" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/app-dir-export/test/dynamicapiroute-dev.test.ts": { + "passed": [], + "failed": [ + "should work in dev with dynamicApiRoute undefined", + "should work in dev with dynamicApiRoute 'error'", + "should work in dev with dynamicApiRoute 'force-static'", + "should work in dev with dynamicApiRoute 'force-dynamic'" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/app-dir-export/test/dynamicapiroute-prod.test.ts": { + "passed": [], + "failed": [ + "should work in prod with dynamicApiRoute undefined", + "should work in prod with dynamicApiRoute 'error'", + "should work in prod with dynamicApiRoute 'force-static'", + "should work in prod with dynamicApiRoute 'force-dynamic'" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/app-dir-export/test/dynamicpage-dev.test.ts": { + "passed": ["should work in dev with dynamicPage 'force-dynamic'"], + "failed": [ + "should work in dev with dynamicPage undefined", + "should work in dev with dynamicPage 'error'", + "should work in dev with dynamicPage 'force-static'" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/app-dir-export/test/dynamicpage-prod.test.ts": { + "passed": ["should work in prod with dynamicPage 'force-dynamic'"], + "failed": [ + "should work in prod with dynamicPage undefined", + "should work in prod with dynamicPage $dynamicPage", + "should work in prod with dynamicPage 'force-static'" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/app-dir-export/test/start.test.ts": { + "passed": [ + "app dir with output export (next start) should error during next start with output export" + ], + "failed": [ + "app dir with output export (next start) should warn during next start with output standalone" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/app-dir-export/test/trailing-slash-dev.test.ts": { + "passed": [], + "failed": [ + "should work in dev with trailingSlash 'false'", + "should work in dev with trailingSlash 'true'" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/app-dir-export/test/trailing-slash-start.test.ts": { + "passed": [], + "failed": [ + "should work in prod with trailingSlash 'false'", + "should work in prod with trailingSlash 'true'" + ], + "pending": [], + "runtimeError": false + }, + "test/development/correct-tsconfig-defaults/index.test.ts": { + "passed": [ + "correct tsconfig.json defaults should add `moduleResolution` when generating tsconfig.json in dev", + "correct tsconfig.json defaults should not warn for `moduleResolution` when already present and valid" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/dotenv-default-expansion/index.test.ts": { + "passed": ["Dotenv default expansion should work"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/basic/theme-ui.test.ts": { + "passed": ["theme-ui SWC option should have theme provided styling"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/experimental-https-server/https-server.generated-key.test.ts": { + "passed": [ + "experimental-https-server (generated certificate) only runs on CI as it requires administrator privileges" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/basic/tailwind-jit.test.ts": { + "passed": ["TailwindCSS JIT works with JIT enabled"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/basic/styled-components.test.ts": { + "passed": [ + "styled-components SWC transform should not have hydration mismatch with styled-components transform enabled", + "styled-components SWC transform should render the page with correct styles", + "styled-components SWC transform should contain styles in initial HTML", + "styled-components SWC transform should only render once on the server per request" + ], + "failed": [ + "styled-components SWC transform should enable the display name transform by default" + ], + "pending": [], + "runtimeError": false + }, + "test/development/client-dev-overlay/index.test.ts": { + "passed": [ + "client-dev-overlay should be able to fullscreen the minimized overlay", + "client-dev-overlay should be able to minimize the fullscreen overlay", + "client-dev-overlay should be able to hide the minimized overlay", + "client-dev-overlay should have a role of \"dialog\" if the page is focused" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/experimental-https-server/https-server.provided-key.test.ts": { + "passed": [ + "experimental-https-server (provided certificate) should successfully load the app in app dir", + "experimental-https-server (provided certificate) should successfully load the app in pages dir" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/gssp-notfound/index.test.ts": { + "passed": [ + "getServerSideProps returns notFound: true should not poll indefinitely" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/next-font/build-errors.test.ts": { + "passed": [], + "failed": [ + "build-errors should show a next/font error when input is wrong", + "build-errors should show a module not found error if local font file can' be resolved" + ], + "pending": [], + "runtimeError": false + }, + "test/development/next-font/deprecated-package.test.ts": { + "passed": [ + "Deprecated @next/font warning should warn if @next/font is in deps", + "Deprecated @next/font warning should not warn if @next/font is not in deps" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/middleware-warnings/index.test.ts": { + "passed": [ + "middlewares does not warn when returning response with literal string", + "middlewares does not warn when returning response with literal number", + "middlewares does not warn when returning response with JSON.stringify", + "middlewares does not warn when populating response with a value", + "middlewares does not warn when populating response with a function call", + "middlewares does not warn when populating response with an async function call", + "middlewares does not warn when returning null reponse body", + "middlewares does not warn when returning undefined response body" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/project-directory-with-styled-jsx-suffix/index.test.ts": { + "passed": ["project directory with styled-jsx suffix should work"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/next-font/font-loader-in-document-error.test.ts": { + "passed": [], + "failed": ["font-loader-in-document-error next/font inside _document"], + "pending": [], + "runtimeError": false + }, + "test/development/pages-dir/custom-app-hmr/index.test.ts": { + "passed": [], + "failed": [ + "custom-app-hmr should not do full reload when simply editing _app.js" + ], + "pending": [], + "runtimeError": false + }, + "test/development/watch-config-file/index.test.ts": { + "passed": ["watch-config-file should output config file change"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/typescript-auto-install/index.test.ts": { + "passed": [ + "typescript-auto-install should work", + "typescript-auto-install should detect TypeScript being added and auto setup" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/webpack-issuer-deprecation-warning/index.test.ts": { + "passed": [], + "failed": [ + "webpack-issuer-deprecation-warning should not appear deprecation warning about webpack module issuer" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir-legacy-edge-runtime-config/index.test.ts": { + "passed": [], + "failed": [ + "app-dir edge runtime config should warn the legacy object config export" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/_allow-underscored-root-directory/_allow-underscored-root-directory.test.ts": { + "passed": [ + "_allow-underscored-root-directory should not serve app path with underscore", + "_allow-underscored-root-directory should pages path with a underscore at the root" + ], + "failed": [ + "_allow-underscored-root-directory should serve app path with %5F" + ], + "pending": [], + "runtimeError": false + }, + "test/development/jsconfig-path-reloading/index.test.ts": { + "passed": [ + "jsconfig-path-reloading jsconfig should load with initial paths config correctly", + "jsconfig-path-reloading jsconfig should recover from module not found when paths is updated", + "jsconfig-path-reloading jsconfig should automatically fast refresh content when path is added without error", + "jsconfig-path-reloading jsconfig added after starting dev should load with initial paths config correctly", + "jsconfig-path-reloading jsconfig added after starting dev should recover from module not found when paths is updated", + "jsconfig-path-reloading jsconfig added after starting dev should automatically fast refresh content when path is added without error" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/actions/app-action-export.test.ts": { + "passed": ["app-dir action handling - next export skip test for dev mode"], + "failed": [ + "app-dir action handling - next export should error when use export output for server actions" + ], + "pending": [], + "runtimeError": false + }, + "test/development/tsconfig-path-reloading/index.test.ts": { + "passed": [ + "tsconfig-path-reloading tsconfig should load with initial paths config correctly", + "tsconfig-path-reloading tsconfig should recover from module not found when paths is updated", + "tsconfig-path-reloading tsconfig should automatically fast refresh content when path is added without error", + "tsconfig-path-reloading tsconfig added after starting dev should load with initial paths config correctly", + "tsconfig-path-reloading tsconfig added after starting dev should recover from module not found when paths is updated", + "tsconfig-path-reloading tsconfig added after starting dev should automatically fast refresh content when path is added without error" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/repeated-dev-edits/repeated-dev-edits.test.ts": { + "passed": ["repeated-dev-edits should not break the hydration "], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/development/middleware-errors/index.test.ts": { + "passed": [ + "middleware - development errors when middleware throws synchronously renders the error correctly and recovers", + "middleware - development errors when middleware contains an unhandled rejection logs the error correctly", + "middleware - development errors when middleware contains an unhandled rejection does not render the error", + "middleware - development errors when there is an unhandled rejection while loading the module logs the error correctly", + "middleware - development errors when there is an unhandled rejection while loading the module does not render the error", + "middleware - development errors when there is an unhandled rejection while loading a dependency logs the error correctly", + "middleware - development errors when there is an unhandled rejection while loading a dependency does not render the error", + "middleware - development errors when there is a compilation error after boot renders the error correctly and recovers" + ], + "failed": [ + "middleware - development errors when middleware throws synchronously logs the error correctly", + "middleware - development errors when running invalid dynamic code with eval logs the error correctly", + "middleware - development errors when running invalid dynamic code with eval renders the error correctly and recovers", + "middleware - development errors when throwing while loading the module logs the error correctly", + "middleware - development errors when throwing while loading the module renders the error correctly and recovers", + "middleware - development errors when there is a compilation error from boot logs the error correctly", + "middleware - development errors when there is a compilation error from boot renders the error correctly and recovers", + "middleware - development errors when there is a compilation error after boot logs the error correctly" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/app-a11y/index.test.ts": { + "passed": [], + "failed": [ + "app a11y features route announcer should not announce the initital title", + "app a11y features route announcer should announce document.title changes", + "app a11y features route announcer should announce h1 changes", + "app a11y features route announcer should announce route changes when h1 changes inside an inner layout" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/app-alias/app-alias.test.ts": { + "passed": [ + "app-dir alias should handle typescript paths alias correctly", + "app-dir alias should resolve css imports from outside with src folder presented", + "app-dir alias should not contain installed react/react-dom version in client chunks", + "app-dir alias should generate app-build-manifest correctly" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/app-basepath/index.test.ts": { + "passed": ["app dir - basepath should support `basePath`"], + "failed": [ + "app dir - basepath should support Link with basePath prefixed", + "app dir - basepath should prefix metadata og image with basePath", + "app dir - basepath should render usePathname without the basePath", + "app dir - basepath should prefix redirect() with basePath" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/app-client-cache/client-cache.test.ts": { + "passed": [ + "app dir client cache semantics should skip dev", + "app dir client cache semantics prefetch={false} should not prefetch the page at all", + "app dir client cache semantics prefetch={undefined} - default should refetch the full page after 5 mins", + "app dir client cache semantics router.push should re-use the cache for 30 seconds", + "app dir client cache semantics router.push should fully refetch the page after 30 seconds" + ], + "failed": [ + "app dir client cache semantics prefetch={true} should prefetch the full page", + "app dir client cache semantics prefetch={true} should re-use the cache for the full page, only for 5 mins", + "app dir client cache semantics prefetch={true} should prefetch again after 5 mins if the link is visible again", + "app dir client cache semantics prefetch={false} should re-use the cache only for 30 seconds", + "app dir client cache semantics prefetch={undefined} - default should prefetch partially a dynamic page", + "app dir client cache semantics prefetch={undefined} - default should re-use the full cache for only 30 seconds", + "app dir client cache semantics prefetch={undefined} - default should refetch below the fold after 30 seconds" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/app-compilation/index.test.ts": { + "passed": [ + "app dir HMR should not cause error when removing loading.js", + "app dir Loading should render loading.js in initial html for slow page" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/app-css-pageextensions/index.test.ts": { + "passed": [ + "app dir css with pageextensions css support with pageextensions page in app directory with pageextention, css should work should support global css inside layout" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/actions/app-action-invalid.test.ts": { + "passed": [], + "failed": [ + "app-dir action invalid config skip test for dev mode", + "app-dir action invalid config should error if serverActions is not enabled" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/app-dir/actions/app-action-progressive-enhancement.test.ts": { + "passed": [], + "failed": [ + "app-dir action progressive enhancement should support formData and redirect without JS", + "app-dir action progressive enhancement should support actions from client without JS" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/app-dir/app-edge-root-layout/index.test.ts": { + "passed": [], + "failed": [ + "app-dir edge runtime root layout should not emit metadata files into bad paths", + "app-dir edge runtime root layout should mark static contain metadata routes as edge functions" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/actions/app-action-size-limit-invalid.test.ts": { + "passed": [], + "failed": [ + "app-dir action size limit invalid config skip test for dev mode", + "app-dir action size limit invalid config should error if serverActionsBodySizeLimit config is a negative number", + "app-dir action size limit invalid config should error if serverActionsBodySizeLimit config is invalid", + "app-dir action size limit invalid config should error if serverActionsBodySizeLimit config is a negative size", + "app-dir action size limit invalid config should respect the size set in serverActionsBodySizeLimit" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/app-dir/app-external/app-external.test.ts": { + "passed": [ + "app dir - external dependency should handle external async module libraries correctly", + "app dir - external dependency should transpile specific external packages with the `transpilePackages` option", + "app dir - external dependency should resolve the subset react in server components based on the react-server condition", + "app dir - external dependency should resolve 3rd party package exports based on the react-server condition", + "app dir - external dependency should correctly collect global css imports and mark them as side effects", + "app dir - external dependency should handle external css modules", + "app dir - external dependency should use the same export type for packages in both ssr and client", + "app dir - external dependency should handle external css modules in pages", + "app dir - external dependency should handle external next/font", + "app dir - external dependency react in external esm packages should use the same react in client app", + "app dir - external dependency react in external esm packages should use the same react in server app", + "app dir - external dependency react in external esm packages should use the same react in edge server app", + "app dir - external dependency react in external esm packages should use the same react in pages", + "app dir - external dependency should export client module references in esm", + "app dir - external dependency should support exporting multiple star re-exports", + "app dir - external dependency should use the same async storages if imported directly" + ], + "failed": [ + "app dir - external dependency should be able to opt-out 3rd party packages being bundled in server components", + "app dir - external dependency should have proper tree-shaking for known modules in CJS" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/app-fetch-deduping/app-fetch-deduping.test.ts": { + "passed": [ + "app-fetch-deduping during next dev should dedupe requests called from the same component", + "app-fetch-deduping during static generation dedupes requests amongst static workers" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/app-prefetch-false/app-prefetch-false.test.ts": { + "passed": [ + "app-prefetch-false should avoid double-fetching when optimistic navigation fails" + ], + "failed": [], + "pending": ["app-prefetch-false should skip test in dev mode"], + "runtimeError": false + }, + "test/e2e/app-dir/app-prefetch/prefetching.test.ts": { + "passed": [ + "app dir prefetching should skip next dev for now", + "app dir prefetching NEXT_RSC_UNION_QUERY query name is _rsc", + "app dir prefetching should not have prefetch error for static path", + "app dir prefetching should not prefetch for a bot user agent", + "app dir prefetching should navigate when prefetch is false" + ], + "failed": [ + "app dir prefetching should show layout eagerly when prefetched with loading one level down", + "app dir prefetching should not fetch again when a static page was prefetched", + "app dir prefetching should not fetch again when a static page was prefetched when navigating to it twice", + "app dir prefetching should calculate `_rsc` query based on `Next-Url`" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/actions/app-action.test.ts": { + "passed": [], + "failed": [ + "app-dir action handling should handle basic actions correctly", + "app-dir action handling should support headers and cookies", + "app-dir action handling should push new route when redirecting", + "app-dir action handling should support headers in client imported actions", + "app-dir action handling should support setting cookies in route handlers with the correct overrides", + "app-dir action handling should support formData and redirect", + "app-dir action handling should support .bind", + "app-dir action handling should support chained .bind", + "app-dir action handling should support notFound (javascript disabled)", + "app-dir action handling should support notFound", + "app-dir action handling should support uploading files", + "app-dir action handling should support hoc auth wrappers", + "app-dir action handling should support importing actions in client components", + "app-dir action handling should support importing the same action module instance in both server and action layers", + "app-dir action handling should not block navigation events while a server action is in flight", + "app-dir action handling should support next/dynamic with ssr: false", + "app-dir action handling should only submit action once when resubmitting an action after navigation", + "app-dir action handling HMR should support updating the action", + "app-dir action handling should bundle external libraries if they are on the action layer", + "app-dir action handling Edge SSR should handle basic actions correctly", + "app-dir action handling Edge SSR should return error response for hoc auth wrappers in edge runtime", + "app-dir action handling Edge SSR should handle redirect to a relative URL in a single pass", + "app-dir action handling Edge SSR should handle regular redirects", + "app-dir action handling Edge SSR should allow cookie and header async storages", + "app-dir action handling Edge SSR should handle unicode search params", + "app-dir action handling fetch actions should handle a fetch action initiated from a static page", + "app-dir action handling fetch actions should handle redirect to a relative URL in a single pass", + "app-dir action handling fetch actions should handle regular redirects", + "app-dir action handling fetch actions should handle revalidatePath", + "app-dir action handling fetch actions should handle revalidateTag", + "app-dir action handling fetch actions should store revalidation data in the prefetch cache", + "app-dir action handling fetch actions should revalidate when cookies.set is called", + "app-dir action handling fetch actions should invalidate client cache on other routes when cookies.set is called", + "app-dir action handling fetch actions should revalidate when cookies.set is called in a client action", + "app-dir action handling fetch actions should invalidate client cache when tag is revalidated", + "app-dir action handling fetch actions should invalidate client cache when path is revalidated", + "app-dir action handling should not expose action content in sourcemaps" + ], + "pending": [ + "app-dir action handling fetch actions should handle revalidateTag + redirect" + ], + "runtimeError": true + }, + "test/e2e/app-dir/app-routes-trailing-slash/app-routes-trailing-slash.test.ts": { + "passed": [], + "failed": [ + "app-routes-trailing-slash should handle trailing slash for edge runtime", + "app-routes-trailing-slash should handle trailing slash for node runtime" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/app-edge/app-edge.test.ts": { + "passed": [ + "app-dir edge SSR should resolve module without error in edge runtime" + ], + "failed": [ + "app-dir edge SSR should handle edge only routes", + "app-dir edge SSR should retrieve cookies in a server component in the edge runtime", + "app-dir edge SSR should handle /index routes correctly", + "app-dir edge SSR should warn about the re-export of a pages runtime/preferredRegion config", + "app-dir edge SSR should handle edge rsc hmr", + "app-dir edge SSR should generate matchers correctly in middleware manifest" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/app-rendering/rendering.test.ts": { + "passed": [ + "app dir rendering should serve app/page.server.js at /", + "app dir rendering SSR only should run data in layout and page", + "app dir rendering SSR only should run data fetch in parallel", + "app dir rendering static only should run data in layout and page", + "app dir rendering static only should run data in parallel during development", + "app dir rendering ISR should revalidate the page when revalidate is configured", + "app dir rendering static only should run data in parallel and use cached version for production" + ], + "failed": [], + "pending": [ + "app dir rendering mixed static and dynamic should generate static data during build and use it" + ], + "runtimeError": false + }, + "test/e2e/app-dir/app-routes/app-custom-route-base-path.test.ts": { + "passed": [ + "app-custom-routes lowercase exports should print an error when using lowercase \"get\" in dev", + "app-custom-routes lowercase exports should print an error when using lowercase \"head\" in dev", + "app-custom-routes lowercase exports should print an error when using lowercase \"options\" in dev", + "app-custom-routes lowercase exports should print an error when using lowercase \"post\" in dev", + "app-custom-routes lowercase exports should print an error when using lowercase \"put\" in dev", + "app-custom-routes lowercase exports should print an error when using lowercase \"delete\" in dev", + "app-custom-routes lowercase exports should print an error when using lowercase \"patch\" in dev", + "app-custom-routes invalid exports should print an error when exporting a default handler in dev" + ], + "failed": [ + "app-custom-routes works with api prefix correctly statically generates correctly with no dynamic usage", + "app-custom-routes works with api prefix correctly does not statically generate with dynamic usage", + "app-custom-routes works with generateStaticParams correctly responds correctly on /static/first/data.json", + "app-custom-routes works with generateStaticParams correctly responds correctly on /static/second/data.json", + "app-custom-routes works with generateStaticParams correctly responds correctly on /static/three/data.json", + "app-custom-routes works with generateStaticParams correctly revalidates correctly on /revalidate-1/first/data.json", + "app-custom-routes works with generateStaticParams correctly revalidates correctly on /revalidate-1/second/data.json", + "app-custom-routes works with generateStaticParams correctly revalidates correctly on /revalidate-1/three/data.json", + "app-custom-routes basic fetch request with a response made via a GET request responds correctly on /basic/endpoint", + "app-custom-routes basic fetch request with a response made via a GET request responds correctly on /basic/vercel/endpoint", + "app-custom-routes basic fetch request with a response made via a POST request responds correctly on /basic/endpoint", + "app-custom-routes basic fetch request with a response made via a POST request responds correctly on /basic/vercel/endpoint", + "app-custom-routes basic fetch request with a response made via a PUT request responds correctly on /basic/endpoint", + "app-custom-routes basic fetch request with a response made via a PUT request responds correctly on /basic/vercel/endpoint", + "app-custom-routes basic fetch request with a response made via a DELETE request responds correctly on /basic/endpoint", + "app-custom-routes basic fetch request with a response made via a DELETE request responds correctly on /basic/vercel/endpoint", + "app-custom-routes basic fetch request with a response made via a PATCH request responds correctly on /basic/endpoint", + "app-custom-routes basic fetch request with a response made via a PATCH request responds correctly on /basic/vercel/endpoint", + "app-custom-routes basic fetch request with a response route groups routes to the correct handler", + "app-custom-routes basic fetch request with a response request can read query parameters", + "app-custom-routes basic fetch request with a response request can read query parameters (edge)", + "app-custom-routes basic fetch request with a response response supports the NextResponse.redirect() helper", + "app-custom-routes basic fetch request with a response response supports the NextResponse.json() helper", + "app-custom-routes body can handle handle a streaming request and streaming response", + "app-custom-routes body can handle handle a streaming request and streaming response (edge)", + "app-custom-routes body can read a JSON encoded body", + "app-custom-routes body can read a JSON encoded body (edge)", + "app-custom-routes body can read a JSON encoded body for DELETE requests", + "app-custom-routes body can read a JSON encoded body for OPTIONS requests", + "app-custom-routes body can read a streamed JSON encoded body", + "app-custom-routes body can read a streamed JSON encoded body (edge)", + "app-custom-routes body can read the text body", + "app-custom-routes body can read the text body (edge)", + "app-custom-routes context provides params to routes with dynamic parameters", + "app-custom-routes context provides params to routes with catch-all routes", + "app-custom-routes context does not provide params to routes without dynamic parameters", + "app-custom-routes hooks headers gets the correct values", + "app-custom-routes hooks cookies gets the correct values", + "app-custom-routes hooks cookies().has() gets the correct values", + "app-custom-routes hooks redirect can respond correctly", + "app-custom-routes hooks notFound can respond correctly", + "app-custom-routes error conditions responds with 400 (Bad Request) when the requested method is not a valid HTTP method", + "app-custom-routes error conditions responds with 405 (Method Not Allowed) when method is not implemented", + "app-custom-routes error conditions responds with 500 (Internal Server Error) when the handler throws an error", + "app-custom-routes error conditions responds with 500 (Internal Server Error) when the handler calls NextResponse.next()", + "app-custom-routes automatic implementations implements HEAD on routes with GET already implemented", + "app-custom-routes automatic implementations implements OPTIONS on routes", + "app-custom-routes edge functions returns response using edge runtime", + "app-custom-routes edge functions returns a response when headers are accessed", + "app-custom-routes dynamic = \"force-static\" strips search, headers, and domain from request", + "app-custom-routes customized metadata routes should work if conflict with metadata routes convention", + "app-custom-routes no response returned should print an error when no response is returned" + ], + "pending": [ + "app-custom-routes basic fetch request with a response response supports the NextResponse.rewrite() helper" + ], + "runtimeError": false + }, + "test/e2e/app-dir/app-simple-routes/app-simple-routes.test.ts": { + "passed": [], + "failed": [ + "app-simple-routes works with simple routes renders a node route", + "app-simple-routes works with simple routes renders a edge route" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/app-routes/app-custom-routes.test.ts": { + "passed": [ + "app-custom-routes lowercase exports should print an error when using lowercase \"get\" in dev", + "app-custom-routes lowercase exports should print an error when using lowercase \"head\" in dev", + "app-custom-routes lowercase exports should print an error when using lowercase \"options\" in dev", + "app-custom-routes lowercase exports should print an error when using lowercase \"post\" in dev", + "app-custom-routes lowercase exports should print an error when using lowercase \"put\" in dev", + "app-custom-routes lowercase exports should print an error when using lowercase \"delete\" in dev", + "app-custom-routes lowercase exports should print an error when using lowercase \"patch\" in dev", + "app-custom-routes invalid exports should print an error when exporting a default handler in dev" + ], + "failed": [ + "app-custom-routes works with api prefix correctly statically generates correctly with no dynamic usage", + "app-custom-routes works with api prefix correctly does not statically generate with dynamic usage", + "app-custom-routes works with generateStaticParams correctly responds correctly on /static/first/data.json", + "app-custom-routes works with generateStaticParams correctly responds correctly on /static/second/data.json", + "app-custom-routes works with generateStaticParams correctly responds correctly on /static/three/data.json", + "app-custom-routes works with generateStaticParams correctly revalidates correctly on /revalidate-1/first/data.json", + "app-custom-routes works with generateStaticParams correctly revalidates correctly on /revalidate-1/second/data.json", + "app-custom-routes works with generateStaticParams correctly revalidates correctly on /revalidate-1/three/data.json", + "app-custom-routes basic fetch request with a response made via a GET request responds correctly on /basic/endpoint", + "app-custom-routes basic fetch request with a response made via a GET request responds correctly on /basic/vercel/endpoint", + "app-custom-routes basic fetch request with a response made via a POST request responds correctly on /basic/endpoint", + "app-custom-routes basic fetch request with a response made via a POST request responds correctly on /basic/vercel/endpoint", + "app-custom-routes basic fetch request with a response made via a PUT request responds correctly on /basic/endpoint", + "app-custom-routes basic fetch request with a response made via a PUT request responds correctly on /basic/vercel/endpoint", + "app-custom-routes basic fetch request with a response made via a DELETE request responds correctly on /basic/endpoint", + "app-custom-routes basic fetch request with a response made via a DELETE request responds correctly on /basic/vercel/endpoint", + "app-custom-routes basic fetch request with a response made via a PATCH request responds correctly on /basic/endpoint", + "app-custom-routes basic fetch request with a response made via a PATCH request responds correctly on /basic/vercel/endpoint", + "app-custom-routes basic fetch request with a response route groups routes to the correct handler", + "app-custom-routes basic fetch request with a response request can read query parameters", + "app-custom-routes basic fetch request with a response request can read query parameters (edge)", + "app-custom-routes basic fetch request with a response response supports the NextResponse.redirect() helper", + "app-custom-routes basic fetch request with a response response supports the NextResponse.json() helper", + "app-custom-routes body can handle handle a streaming request and streaming response", + "app-custom-routes body can handle handle a streaming request and streaming response (edge)", + "app-custom-routes body can read a JSON encoded body", + "app-custom-routes body can read a JSON encoded body (edge)", + "app-custom-routes body can read a JSON encoded body for DELETE requests", + "app-custom-routes body can read a JSON encoded body for OPTIONS requests", + "app-custom-routes body can read a streamed JSON encoded body", + "app-custom-routes body can read a streamed JSON encoded body (edge)", + "app-custom-routes body can read the text body", + "app-custom-routes body can read the text body (edge)", + "app-custom-routes context provides params to routes with dynamic parameters", + "app-custom-routes context provides params to routes with catch-all routes", + "app-custom-routes context does not provide params to routes without dynamic parameters", + "app-custom-routes hooks headers gets the correct values", + "app-custom-routes hooks cookies gets the correct values", + "app-custom-routes hooks cookies().has() gets the correct values", + "app-custom-routes hooks redirect can respond correctly", + "app-custom-routes hooks notFound can respond correctly", + "app-custom-routes error conditions responds with 400 (Bad Request) when the requested method is not a valid HTTP method", + "app-custom-routes error conditions responds with 405 (Method Not Allowed) when method is not implemented", + "app-custom-routes error conditions responds with 500 (Internal Server Error) when the handler throws an error", + "app-custom-routes error conditions responds with 500 (Internal Server Error) when the handler calls NextResponse.next()", + "app-custom-routes automatic implementations implements HEAD on routes with GET already implemented", + "app-custom-routes automatic implementations implements OPTIONS on routes", + "app-custom-routes edge functions returns response using edge runtime", + "app-custom-routes edge functions returns a response when headers are accessed", + "app-custom-routes dynamic = \"force-static\" strips search, headers, and domain from request", + "app-custom-routes customized metadata routes should work if conflict with metadata routes convention", + "app-custom-routes no response returned should print an error when no response is returned" + ], + "pending": [ + "app-custom-routes basic fetch request with a response response supports the NextResponse.rewrite() helper" + ], + "runtimeError": false + }, + "test/e2e/app-dir/app-css/index.test.ts": { + "passed": [ + "app dir css css support should not affect css orders during HMR", + "app dir css HMR should support HMR for CSS imports in client components", + "app dir css HMR should not break HMR when CSS is imported in a server component", + "app dir css Suspensey CSS should suspend on CSS imports if its slow on client navigation" + ], + "failed": [ + "app dir css css support server layouts should support external css imports", + "app dir css css support special entries should include css imported in loading.js", + "app dir css css support chunks should bundle css resources into chunks", + "app dir css css support should not preload styles twice during HMR", + "app dir css css support should reload @import styles during HMR", + "app dir css css support multiple entries should deduplicate styles on the module level", + "app dir css css support multiple entries should only include the same style once in the flight data", + "app dir css HMR should support HMR for CSS imports in server components", + "app dir css HMR should not create duplicate link tags during HMR", + "app dir css HMR should support HMR with sass/scss", + "app dir css css support server layouts should support css modules inside server layouts", + "app dir css css support server pages should support global css inside server pages", + "app dir css css support server pages should support css modules inside server pages", + "app dir css css support server pages should not contain pages css in app dir page", + "app dir css css support client layouts should support css modules inside client layouts", + "app dir css css support client layouts should support global css inside client layouts", + "app dir css css support client pages should support css modules inside client pages", + "app dir css css support client pages should support global css inside client pages", + "app dir css css support client components should support css modules inside client page", + "app dir css css support client components should support css modules inside client components", + "app dir css css support special entries should include css imported in client template.js", + "app dir css css support special entries should include css imported in server template.js", + "app dir css css support special entries should include css imported in client not-found.js", + "app dir css css support special entries should include css imported in server not-found.js", + "app dir css css support special entries should include root layout css for root not-found.js", + "app dir css css support special entries should include css imported in root not-found.js", + "app dir css css support special entries should include css imported in error.js", + "app dir css css support page extensions should include css imported in MDX pages", + "app dir css css support css ordering should have inner layers take precedence over outer layers", + "app dir css sass support server layouts should support global sass/scss inside server layouts", + "app dir css sass support server layouts should support sass/scss modules inside server layouts", + "app dir css sass support server pages should support global sass/scss inside server pages", + "app dir css sass support server pages should support sass/scss modules inside server pages", + "app dir css sass support client layouts should support global sass/scss inside client layouts", + "app dir css sass support client layouts should support sass/scss modules inside client layouts", + "app dir css sass support client pages should support global sass/scss inside client pages", + "app dir css sass support client pages should support sass/scss modules inside client pages", + "app dir css pages dir should include css modules and global css after page transition" + ], + "pending": [ + "app dir css css support server layouts should support global css inside server layouts", + "app dir css css support multiple entries should only inject the same style once if used by different layers", + "app dir css css support multiple entries should only load chunks for the css module that is used by the specific entrypoint" + ], + "runtimeError": false + }, + "test/e2e/app-dir/app-static/app-fetch-logging.test.ts": { + "passed": [], + "failed": [ + "app-dir - data fetching with cache logging with verbose logging should only log requests in dev mode", + "app-dir - data fetching with cache logging with verbose logging should log 'skip' cache status with a reason when cache: 'no-cache' is used", + "app-dir - data fetching with cache logging with verbose logging should log 'skip' cache status with a reason when revalidate: 0 is used", + "app-dir - data fetching with cache logging with verbose logging should log 'skip' cache status with a reason when the browser indicates caching should be ignored", + "app-dir - data fetching with cache logging with default logging should not log fetch requests at all" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/app-dir/app-static/app-static-custom-cache-handler-esm.test.ts": { + "passed": [], + "failed": [ + "app-static-custom-cache-handler-esm should skip", + "app-static-custom-cache-handler-esm should have logs from cache-handler" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/app-dir/app-validation/validation.test.ts": { + "passed": [ + "app dir validation should error when passing invalid router state tree" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/app-static/app-static-custom-handler.test.ts": { + "passed": [], + "failed": [ + "app-dir static/dynamic handling should correctly include headers instance in cache key", + "app-dir static/dynamic handling unstable-cache should work in pages/unstable-cache-node", + "app-dir static/dynamic handling unstable-cache should work in pages/unstable-cache-edge", + "app-dir static/dynamic handling unstable-cache should work in pages/api/unstable-cache-node", + "app-dir static/dynamic handling unstable-cache should work in pages/api/unstable-cache-edge", + "app-dir static/dynamic handling should not have cache tags header for non-minimal mode", + "app-dir static/dynamic handling should error correctly for invalid params from generateStaticParams", + "app-dir static/dynamic handling should correctly handle multi-level generateStaticParams when some levels are missing", + "app-dir static/dynamic handling should correctly skip caching POST fetch for POST handler", + "app-dir static/dynamic handling should correctly handle fetchCache = \"force-no-store\"", + "app-dir static/dynamic handling should not cache non-ok statusCode", + "app-dir static/dynamic handling should correctly handle statusCode with notFound + ISR", + "app-dir static/dynamic handling should cache correctly for fetchCache = default-cache", + "app-dir static/dynamic handling should cache correctly for fetchCache = force-cache", + "app-dir static/dynamic handling should cache correctly for cache: no-store", + "app-dir static/dynamic handling should bypass fetch cache with cache-control: no-cache", + "app-dir static/dynamic handling should skip cache in draft mode", + "app-dir static/dynamic handling should handle partial-gen-params with default dynamicParams correctly", + "app-dir static/dynamic handling should handle partial-gen-params with layout dynamicParams = false correctly", + "app-dir static/dynamic handling should handle partial-gen-params with page dynamicParams = false correctly", + "app-dir static/dynamic handling should honor fetch cache correctly", + "app-dir static/dynamic handling should honor fetch cache correctly (edge)", + "app-dir static/dynamic handling should cache correctly with authorization header and revalidate", + "app-dir static/dynamic handling should not cache correctly with POST method request init", + "app-dir static/dynamic handling should cache correctly with post method and revalidate", + "app-dir static/dynamic handling should cache correctly with post method and revalidate edge", + "app-dir static/dynamic handling should cache correctly with POST method and revalidate", + "app-dir static/dynamic handling should cache correctly with cookie header and revalidate", + "app-dir static/dynamic handling should cache correctly with utf8 encoding", + "app-dir static/dynamic handling should cache correctly with utf8 encoding edge", + "app-dir static/dynamic handling should cache correctly handle JSON body", + "app-dir static/dynamic handling should not throw Dynamic Server Usage error when using generateStaticParams with draftMode", + "app-dir static/dynamic handling should force SSR correctly for headers usage", + "app-dir static/dynamic handling should allow dynamic routes to access cookies", + "app-dir static/dynamic handling should not error with generateStaticParams and dynamic data", + "app-dir static/dynamic handling should not error with force-dynamic and catch-all routes", + "app-dir static/dynamic handling should not error with generateStaticParams and authed data on revalidate", + "app-dir static/dynamic handling should handle dynamicParams: false correctly", + "app-dir static/dynamic handling should work with forced dynamic path", + "app-dir static/dynamic handling should work with dynamic path no generateStaticParams", + "app-dir static/dynamic handling should handle dynamicParams: true correctly", + "app-dir static/dynamic handling should navigate to static path correctly", + "app-dir static/dynamic handling should ssr dynamically when detected automatically with fetch cache option", + "app-dir static/dynamic handling should render not found pages correctly and fallback to the default one", + "app-dir static/dynamic handling should ssr dynamically when forced via config", + "app-dir static/dynamic handling useSearchParams client should bailout to client rendering - without suspense boundary", + "app-dir static/dynamic handling useSearchParams client should bailout to client rendering - with suspense boundary", + "app-dir static/dynamic handling useSearchParams client should have values from canonical url on rewrite", + "app-dir static/dynamic handling usePathname should have the correct values", + "app-dir static/dynamic handling usePathname should have values from canonical url on rewrite", + "app-dir static/dynamic handling should keep querystring on static page", + "app-dir static/dynamic handling should have logs from cache-handler", + "app-dir static/dynamic handling should propagate unstable_cache tags correctly", + "app-dir static/dynamic handling should output HTML/RSC files for static paths", + "app-dir static/dynamic handling should have correct prerender-manifest entries", + "app-dir static/dynamic handling should output debug info for static bailouts", + "app-dir static/dynamic handling should not error with dynamic server usage with force-static", + "app-dir static/dynamic handling should produce response with url from fetch", + "app-dir static/dynamic handling should properly error when dynamic = \"error\" page uses dynamic", + "app-dir static/dynamic handling useSearchParams server response should bailout to client rendering - without suspense boundary", + "app-dir static/dynamic handling useSearchParams server response should bailout to client rendering - with suspense boundary" + ], + "pending": [ + "app-dir static/dynamic handling should correctly de-dupe fetch without next cache /react-fetch-deduping-node", + "app-dir static/dynamic handling should correctly de-dupe fetch without next cache /react-fetch-deduping-edge", + "app-dir static/dynamic handling should ssr dynamically when detected automatically with fetch revalidate option", + "app-dir static/dynamic handling useSearchParams client should have empty search params on force-static", + "app-dir static/dynamic handling useSearchParams server response should have empty search params on force-static" + ], + "runtimeError": true + }, + "test/e2e/app-dir/app/standalone.test.ts": { + "passed": ["should skip for non-next start"], + "failed": [ + "output: standalone with app dir should handle trace files correctly for route groups (nodejs only)", + "output: standalone with app dir should work correctly with output standalone" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/app/vercel-speed-insights.test.ts": { + "passed": [], + "failed": [ + "vercel speed insights without assetPrefix Vercel analytics should send web vitals to Vercel analytics", + "vercel speed insights with assetPrefix Vercel analytics should send web vitals to Vercel analytics" + ], + "pending": [ + "vercel speed insights without assetPrefix Vercel analytics should send web vitals to Vercel analytics", + "vercel speed insights with assetPrefix Vercel analytics should send web vitals to Vercel analytics" + ], + "runtimeError": false + }, + "test/e2e/app-dir/asset-prefix/asset-prefix.test.ts": { + "passed": [ + "app-dir assetPrefix handling should redirect route when requesting it directly", + "app-dir assetPrefix handling should render link", + "app-dir assetPrefix handling should redirect route when requesting it directly by browser", + "app-dir assetPrefix handling should redirect route when clicking link" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/async-component-preload/async-component-preload.test.ts": { + "passed": [ + "async-component-preload should handle redirect in an async page" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/autoscroll-with-css-modules/index.test.ts": { + "passed": [ + "router autoscrolling on navigation vertical scroll when page imports css modules should scroll to top of document when navigating between to pages without layout when", + "router autoscrolling on navigation vertical scroll when page imports css modules should scroll when clicking in JS" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/app-static/app-static.test.ts": { + "passed": [], + "failed": [ + "app-dir static/dynamic handling should correctly include headers instance in cache key", + "app-dir static/dynamic handling unstable-cache should work in pages/unstable-cache-node", + "app-dir static/dynamic handling unstable-cache should work in pages/unstable-cache-edge", + "app-dir static/dynamic handling unstable-cache should work in pages/api/unstable-cache-node", + "app-dir static/dynamic handling unstable-cache should work in pages/api/unstable-cache-edge", + "app-dir static/dynamic handling should not have cache tags header for non-minimal mode", + "app-dir static/dynamic handling should error correctly for invalid params from generateStaticParams", + "app-dir static/dynamic handling should correctly handle multi-level generateStaticParams when some levels are missing", + "app-dir static/dynamic handling should correctly skip caching POST fetch for POST handler", + "app-dir static/dynamic handling it should revalidate tag correctly with edge route handler", + "app-dir static/dynamic handling it should revalidate tag correctly with node route handler", + "app-dir static/dynamic handling should correctly handle fetchCache = \"force-no-store\"", + "app-dir static/dynamic handling should revalidate correctly with config and fetch revalidate", + "app-dir static/dynamic handling should not cache non-ok statusCode", + "app-dir static/dynamic handling should correctly handle statusCode with notFound + ISR", + "app-dir static/dynamic handling should cache correctly for fetchCache = default-cache", + "app-dir static/dynamic handling should cache correctly for fetchCache = force-cache", + "app-dir static/dynamic handling should cache correctly for cache: no-store", + "app-dir static/dynamic handling should bypass fetch cache with cache-control: no-cache", + "app-dir static/dynamic handling should skip cache in draft mode", + "app-dir static/dynamic handling should handle partial-gen-params with default dynamicParams correctly", + "app-dir static/dynamic handling should handle partial-gen-params with layout dynamicParams = false correctly", + "app-dir static/dynamic handling should handle partial-gen-params with page dynamicParams = false correctly", + "app-dir static/dynamic handling should honor fetch cache in generateStaticParams", + "app-dir static/dynamic handling should honor fetch cache correctly", + "app-dir static/dynamic handling should honor fetch cache correctly (edge)", + "app-dir static/dynamic handling should cache correctly with authorization header and revalidate", + "app-dir static/dynamic handling should not cache correctly with POST method request init", + "app-dir static/dynamic handling should cache correctly with post method and revalidate", + "app-dir static/dynamic handling should cache correctly with post method and revalidate edge", + "app-dir static/dynamic handling should cache correctly with POST method and revalidate", + "app-dir static/dynamic handling should cache correctly with cookie header and revalidate", + "app-dir static/dynamic handling should cache correctly with utf8 encoding", + "app-dir static/dynamic handling should cache correctly with utf8 encoding edge", + "app-dir static/dynamic handling should cache correctly handle JSON body", + "app-dir static/dynamic handling should not throw Dynamic Server Usage error when using generateStaticParams with draftMode", + "app-dir static/dynamic handling should force SSR correctly for headers usage", + "app-dir static/dynamic handling should allow dynamic routes to access cookies", + "app-dir static/dynamic handling should not error with generateStaticParams and dynamic data", + "app-dir static/dynamic handling should not error with force-dynamic and catch-all routes", + "app-dir static/dynamic handling should not error with generateStaticParams and authed data on revalidate", + "app-dir static/dynamic handling should honor dynamic = \"force-static\" correctly", + "app-dir static/dynamic handling should honor dynamic = \"force-static\" correctly (lazy)", + "app-dir static/dynamic handling should handle dynamicParams: false correctly", + "app-dir static/dynamic handling should work with forced dynamic path", + "app-dir static/dynamic handling should work with dynamic path no generateStaticParams", + "app-dir static/dynamic handling should handle dynamicParams: true correctly", + "app-dir static/dynamic handling should navigate to static path correctly", + "app-dir static/dynamic handling should ssr dynamically when detected automatically with fetch cache option", + "app-dir static/dynamic handling should render not found pages correctly and fallback to the default one", + "app-dir static/dynamic handling should ssr dynamically when forced via config", + "app-dir static/dynamic handling useSearchParams client should bailout to client rendering - without suspense boundary", + "app-dir static/dynamic handling useSearchParams client should bailout to client rendering - with suspense boundary", + "app-dir static/dynamic handling useSearchParams client should have values from canonical url on rewrite", + "app-dir static/dynamic handling usePathname should have the correct values", + "app-dir static/dynamic handling usePathname should have values from canonical url on rewrite", + "app-dir static/dynamic handling should keep querystring on static page", + "app-dir static/dynamic handling should propagate unstable_cache tags correctly", + "app-dir static/dynamic handling should not revalidate / when revalidate is not used", + "app-dir static/dynamic handling it should revalidate correctly with edge route handler", + "app-dir static/dynamic handling it should revalidate correctly with node route handler", + "app-dir static/dynamic handling should revalidate all fetches during on-demand revalidate", + "app-dir static/dynamic handling should output HTML/RSC files for static paths", + "app-dir static/dynamic handling should have correct prerender-manifest entries", + "app-dir static/dynamic handling should output debug info for static bailouts", + "app-dir static/dynamic handling should not error with dynamic server usage with force-static", + "app-dir static/dynamic handling should produce response with url from fetch", + "app-dir static/dynamic handling should properly error when dynamic = \"error\" page uses dynamic", + "app-dir static/dynamic handling useSearchParams server response should bailout to client rendering - without suspense boundary", + "app-dir static/dynamic handling useSearchParams server response should bailout to client rendering - with suspense boundary" + ], + "pending": [ + "app-dir static/dynamic handling should correctly de-dupe fetch without next cache /react-fetch-deduping-node", + "app-dir static/dynamic handling should correctly de-dupe fetch without next cache /react-fetch-deduping-edge", + "app-dir static/dynamic handling should ssr dynamically when detected automatically with fetch revalidate option", + "app-dir static/dynamic handling useSearchParams client should have empty search params on force-static", + "app-dir static/dynamic handling useSearchParams server response should have empty search params on force-static" + ], + "runtimeError": true + }, + "test/e2e/app-dir/back-button-download-bug/back-button-download-bug.test.ts": { + "passed": [], + "failed": [], + "pending": [ + "app-dir back button download bug app-dir back button download bug should redirect route when clicking link" + ], + "runtimeError": false + }, + "test/e2e/app-dir/build-size/index.test.ts": { + "passed": [ + "app-dir build size should skip next dev for now", + "app-dir build size should have correct size in build output" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/crypto-globally-available/crypto-globally-available.test.ts": { + "passed": [ + "Web Crypto API is available globally should be available in Server Components", + "Web Crypto API is available globally should be available in Route Handlers" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/deopted-into-client-rendering-warning/deopted-into-client-rendering-warning.test.ts": { + "passed": ["should not show deopted into client rendering warning"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/draft-mode/draft-mode.test.ts": { + "passed": [], + "failed": [ + "app dir - draft mode in edge runtime should use initial rand when draft mode is disabled on /with-edge/index", + "app dir - draft mode in edge runtime should use initial rand when draft mode is disabled on /with-edge/with-cookies", + "app dir - draft mode in edge runtime should genenerate rand when draft mode enabled", + "app dir - draft mode in edge runtime should read other cookies when draft mode enabled", + "app dir - draft mode in nodejs runtime should use initial rand when draft mode is disabled on /index", + "app dir - draft mode in nodejs runtime should use initial rand when draft mode is disabled on /with-cookies", + "app dir - draft mode in nodejs runtime should not generate rand when draft mode disabled during next start", + "app dir - draft mode in nodejs runtime should not read other cookies when draft mode disabled during next start", + "app dir - draft mode in nodejs runtime should be disabled from api route handler", + "app dir - draft mode in nodejs runtime should have set-cookie header on enable", + "app dir - draft mode in nodejs runtime should have set-cookie header with redirect location", + "app dir - draft mode in nodejs runtime should genenerate rand when draft mode enabled", + "app dir - draft mode in nodejs runtime should read other cookies when draft mode enabled", + "app dir - draft mode in nodejs runtime should be enabled from api route handler when draft mode enabled", + "app dir - draft mode in nodejs runtime should not perform full page navigation on router.refresh()", + "app dir - draft mode in edge runtime should not read other cookies when draft mode disabled during next start", + "app dir - draft mode in edge runtime should be disabled from api route handler", + "app dir - draft mode in edge runtime should have set-cookie header on enable", + "app dir - draft mode in edge runtime should have set-cookie header with redirect location", + "app dir - draft mode in edge runtime should be enabled from api route handler when draft mode enabled", + "app dir - draft mode in edge runtime should not perform full page navigation on router.refresh()" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/dynamic-href/dynamic-href.test.ts": { + "passed": [ + "dynamic-href should error when using dynamic href.pathname in app dir", + "dynamic-href should error when using dynamic href in app dir", + "dynamic-href should not error on /object in prod", + "dynamic-href should not error on /string in prod" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/dynamic/dynamic.test.ts": { + "passed": [], + "failed": [ + "app dir - next/dynamic should handle ssr: false in pages when appDir is enabled", + "app dir - next/dynamic should handle next/dynamic in SSR correctly", + "app dir - next/dynamic should handle next/dynamic in hydration correctly", + "app dir - next/dynamic should generate correct client manifest for dynamic chunks" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/edge-runtime-node-compatibility/edge-runtime-node-compatibility.test.ts": { + "passed": [], + "failed": [ + "edge runtime node compatibility [app] supports node:buffer", + "edge runtime node compatibility [pages/api] supports node:buffer" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/app-middleware/app-middleware.test.ts": { + "passed": [], + "failed": [ + "app-dir with middleware should filter correctly after middleware rewrite", + "app-dir with middleware Mutate request headers for Serverless Functions Adds new headers", + "app-dir with middleware Mutate request headers for Serverless Functions Deletes headers", + "app-dir with middleware Mutate request headers for Serverless Functions Updates headers", + "app-dir with middleware Mutate request headers for Serverless Functions Supports draft mode", + "app-dir with middleware Mutate request headers for Edge Functions Adds new headers", + "app-dir with middleware Mutate request headers for Edge Functions Deletes headers", + "app-dir with middleware Mutate request headers for Edge Functions Updates headers", + "app-dir with middleware Mutate request headers for Edge Functions Supports draft mode", + "app-dir with middleware Mutate request headers for next/headers Adds new headers", + "app-dir with middleware Mutate request headers for next/headers Deletes headers", + "app-dir with middleware Mutate request headers for next/headers Updates headers", + "app-dir with middleware Mutate request headers for next/headers Supports draft mode", + "app dir middleware without pages dir Updates headers", + "app dir middleware with middleware in src dir works without crashing when using requestAsyncStorage" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/app-dir/emotion-js/index.test.ts": { + "passed": [], + "failed": [ + "app dir - emotion-js should render emotion-js css with compiler.emotion option correctly" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/create-root-layout/create-root-layout.test.ts": { + "passed": [], + "failed": [ + "app-dir create root layout page.js root layout in app create root layout", + "app-dir create root layout page.js root layout in route group create root layout", + "app-dir create root layout page.js find available dir create root layout", + "app-dir create root layout page.tsx create root layout", + "app-dir create root layout build should break the build if a page is missing root layout" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/error-boundary-navigation/index.test.ts": { + "passed": [], + "failed": [ + "app dir - not found navigation should allow navigation on not-found", + "app dir - not found navigation should allow navigation on error", + "app dir - not found navigation should allow navigation to other routes on route that was initially not-found", + "app dir - not found navigation should allow navigation back to route that was initially not-found", + "app dir - not found navigation should allow navigating to a page calling notfound", + "app dir - not found navigation should allow navigating to a non-existent page", + "app dir - not found navigation should be able to navigate to other page from root not-found page" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/front-redirect-issue/front-redirect-issue.test.ts": { + "passed": ["app dir - front redirect issue should redirect"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/global-error/basic/index.test.ts": { + "passed": [], + "failed": [ + "app dir - global error should trigger error component when an error happens during rendering", + "app dir - global error should render global error for error in server components", + "app dir - global error should render global error for error in client components", + "app dir - global error should catch metadata error in error boundary if presented", + "app dir - global error should catch metadata error in global-error if no error boundary is presented" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/global-error/layout-error/index.test.ts": { + "passed": [], + "failed": [ + "app dir - global error - layout error should render global error for error in server components" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/headers-static-bailout/headers-static-bailout.test.ts": { + "passed": [ + "headers-static-bailout should skip", + "headers-static-bailout should bailout when using an import from next/headers", + "headers-static-bailout should not bailout when not using headers", + "headers-static-bailout it provides a helpful link in case static generation bailout is uncaught" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/hello-world/hello-world.test.ts": { + "passed": [ + "hello-world should work using cheerio", + "hello-world should work using browser", + "hello-world should work with html", + "hello-world should work with fetch" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/i18n-hybrid/i18n-hybrid.test.js": { + "passed": [ + "i18n-hybrid does not resolve /en-CA/blog/first-post", + "i18n-hybrid does not resolve /en-US/blog/first-post", + "i18n-hybrid does not resolve /fr-CA/blog/first-post", + "i18n-hybrid does not resolve /fr-FR/blog/first-post", + "i18n-hybrid does resolve /blog/first-post", + "i18n-hybrid does resolve /about", + "i18n-hybrid does resolve /en-CA/about", + "i18n-hybrid does resolve /en-US/about", + "i18n-hybrid does resolve /fr-CA/about", + "i18n-hybrid does resolve /fr-FR/about" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/error-boundary-navigation/override-node-env.test.ts": { + "passed": [], + "failed": [ + "app dir - not found navigation should allow navigation on not-found", + "app dir - not found navigation should allow navigation on error", + "app dir - not found navigation should allow navigation to other routes on route that was initially not-found", + "app dir - not found navigation should allow navigation back to route that was initially not-found", + "app dir - not found navigation should allow navigating to a page calling notfound", + "app dir - not found navigation should allow navigating to a non-existent page", + "app dir - not found navigation should be able to navigate to other page from root not-found page", + "app dir - not found navigation - with overridden node env should allow navigation on not-found", + "app dir - not found navigation - with overridden node env should allow navigation on error", + "app dir - not found navigation - with overridden node env should allow navigation to other routes on route that was initially not-found", + "app dir - not found navigation - with overridden node env should allow navigation back to route that was initially not-found", + "app dir - not found navigation - with overridden node env should allow navigating to a page calling notfound", + "app dir - not found navigation - with overridden node env should allow navigating to a non-existent page", + "app dir - not found navigation - with overridden node env should be able to navigate to other page from root not-found page" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/import/import.test.ts": { + "passed": [ + "app dir imports we can import all components from .js", + "app dir imports we can import all components from .jsx", + "app dir imports we can import all components from .ts", + "app dir imports we can import all components from .tsx" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/hooks/hooks.test.ts": { + "passed": [ + "app dir - hooks from pages should have the correct hooks", + "app dir - hooks usePathname should have the correct pathname", + "app dir - hooks usePathname should have the canonical url pathname on rewrite", + "app dir - hooks useSearchParams should have the correct search params", + "app dir - hooks useSearchParams should have the canonical url search params on rewrite", + "app dir - hooks useDraftMode should use initial rand when draft mode be disabled", + "app dir - hooks useDraftMode should genenerate rand when draft mode enabled", + "app dir - hooks useSelectedLayoutSegments should have the correct layout segments at /hooks/use-selected-layout-segment/first", + "app dir - hooks useSelectedLayoutSegments should have the correct layout segments at /hooks/use-selected-layout-segment/first/slug1", + "app dir - hooks useSelectedLayoutSegments should have the correct layout segments at /hooks/use-selected-layout-segment/first/slug2/second", + "app dir - hooks useSelectedLayoutSegments should have the correct layout segments at /hooks/use-selected-layout-segment/first/slug2/second/a/b", + "app dir - hooks useSelectedLayoutSegments should have the correct layout segments at /hooks/use-selected-layout-segment/rewritten", + "app dir - hooks useSelectedLayoutSegments should return an empty array in pages", + "app dir - hooks useSelectedLayoutSegment should have the correct layout segment at /hooks/use-selected-layout-segment/first", + "app dir - hooks useSelectedLayoutSegment should have the correct layout segment at /hooks/use-selected-layout-segment/first/slug1", + "app dir - hooks useSelectedLayoutSegment should have the correct layout segment at /hooks/use-selected-layout-segment/first/slug2/second/a/b", + "app dir - hooks useSelectedLayoutSegment should return null in pages" + ], + "failed": [ + "app dir - hooks useRouter should allow access to the router", + "app dir - hooks useSelectedLayoutSegments should have the correct layout segments at /hooks/use-selected-layout-segment/rewritten-middleware" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/layout-params/layout-params.test.ts": { + "passed": [ + "app dir - layout params basic params check layout without params get no params", + "app dir - layout params basic params check layout renders just it's params", + "app dir - layout params basic params check topmost layout renders all params", + "app dir - layout params catchall params should give catchall params just to last layout", + "app dir - layout params catchall params should give optional catchall params just to last layout", + "app dir - layout params catchall params should give empty optional catchall params won't give params to any layout" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/interoperability-with-pages/navigation.test.ts": { + "passed": [ + "navigation between pages and app dir It should be able to navigate app -> pages", + "navigation between pages and app dir It should be able to navigate pages -> app", + "navigation between pages and app dir It should be able to navigate pages -> app and go back an forward", + "navigation between pages and app dir It should be able to navigate app -> pages and go back and forward" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/interception-middleware-rewrite/interception-middleware-rewrite.test.ts": { + "passed": [], + "failed": [ + "interception-middleware-rewrite should support intercepting routes with a middleware rewrite" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/mdx/mdx.test.ts": { + "passed": [], + "failed": [ + "mdx without-mdx-rs app directory should work in initial html", + "mdx without-mdx-rs app directory should work using browser", + "mdx without-mdx-rs app directory should work in initial html with mdx import", + "mdx without-mdx-rs app directory should work using browser with mdx import", + "mdx without-mdx-rs app directory should allow overriding components", + "mdx without-mdx-rs pages directory should work in initial html", + "mdx without-mdx-rs pages directory should work using browser", + "mdx without-mdx-rs pages directory should work in initial html with mdx import", + "mdx without-mdx-rs pages directory should work using browser with mdx import", + "mdx without-mdx-rs pages directory should allow overriding components", + "mdx with-mdx-rs app directory should work in initial html", + "mdx with-mdx-rs app directory should work using browser", + "mdx with-mdx-rs app directory should work in initial html with mdx import", + "mdx with-mdx-rs app directory should work using browser with mdx import", + "mdx with-mdx-rs app directory should allow overriding components", + "mdx with-mdx-rs pages directory should work in initial html", + "mdx with-mdx-rs pages directory should work using browser", + "mdx with-mdx-rs pages directory should work in initial html with mdx import", + "mdx with-mdx-rs pages directory should work using browser with mdx import", + "mdx with-mdx-rs pages directory should allow overriding components" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/metadata-edge/index.test.ts": { + "passed": [], + "failed": [ + "app dir - Metadata API on the Edge runtime should render OpenGraph image meta tag correctly", + "app dir - Metadata API on the Edge runtime OG image route should not bundle `ImageResponse` into the page worker" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/metadata-missing-metadata-base/index.test.ts": { + "passed": [ + "app dir - metadata missing metadataBase should fallback to localhost if metadataBase is missing for absolute urls resolving" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/metadata-suspense/index.test.ts": { + "passed": [ + "app dir - metadata dynamic routes should render metadata in head even root layout is wrapped with Suspense" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/metadata-dynamic-routes/index.test.ts": { + "passed": [ + "app dir - metadata dynamic routes should error when id is missing in generateImageMetadata" + ], + "failed": [ + "app dir - metadata dynamic routes text routes should handle sitemap.[ext] dynamic routes", + "app dir - metadata dynamic routes text routes should not throw if client components are imported but not used", + "app dir - metadata dynamic routes social image routes should support generate multi sitemaps with generateSitemaps", + "app dir - metadata dynamic routes social image routes should support params as argument in dynamic routes", + "app dir - metadata dynamic routes social image routes should fill params into routes groups url of static images", + "app dir - metadata dynamic routes social image routes should handle custom fonts in both edge and nodejs runtime", + "app dir - metadata dynamic routes should generate unique path for image routes under group routes", + "app dir - metadata dynamic routes should error when id is missing in generateSitemaps", + "app dir - metadata dynamic routes text routes should handle robots.[ext] dynamic routes", + "app dir - metadata dynamic routes social image routes should handle manifest.[ext] dynamic routes", + "app dir - metadata dynamic routes social image routes should render og image with opengraph-image dynamic routes", + "app dir - metadata dynamic routes social image routes should render og image with twitter-image dynamic routes", + "app dir - metadata dynamic routes social image routes should support generate multi images with generateImageMetadata", + "app dir - metadata dynamic routes social image routes should fill params into dynamic routes url of metadata images", + "app dir - metadata dynamic routes icon image routes should render icon with dynamic routes", + "app dir - metadata dynamic routes icon image routes should render apple icon with dynamic routes", + "app dir - metadata dynamic routes should pick configured metadataBase instead of deployment url for canonical url", + "app dir - metadata dynamic routes should inject dynamic metadata properly to head", + "app dir - metadata dynamic routes should use localhost for local prod and fallback to deployment url when metadataBase is falsy", + "app dir - metadata dynamic routes should support edge runtime of image routes", + "app dir - metadata dynamic routes should optimize routes without multiple generation API as static routes", + "app dir - metadata dynamic routes should generate static paths of dynamic sitemap in production", + "app dir - metadata dynamic routes should include default og font files in file trace" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/next-config/index.test.ts": { + "passed": [ + "app dir - next config should support importing webpack in next.config" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/next-font/next-font.test.ts": { + "passed": [], + "failed": [ + "app app dir next-font import values should have correct values at /", + "app app dir next-font import values should have correct values at /client", + "app app dir next-font computed styles should have correct styles at /", + "app app dir next-font computed styles should have correct styles at /client", + "app app dir next-font navigation should not have duplicate preload tags on navigation", + "app app dir next-font Dev errors should recover on font loader error", + "app-old app dir next-font import values should have correct values at /", + "app-old app dir next-font import values should have correct values at /client", + "app-old app dir next-font computed styles should have correct styles at /", + "app-old app dir next-font computed styles should have correct styles at /client", + "app-old app dir next-font navigation should not have duplicate preload tags on navigation", + "app-old app dir next-font Dev errors should recover on font loader error", + "app app dir next-font preload should preload correctly with server components", + "app app dir next-font preload should preload correctly with client components", + "app app dir next-font preload should preload correctly with layout using fonts", + "app app dir next-font preload should preload correctly with page using fonts", + "app app dir next-font preconnect should add preconnect when preloading is disabled in page", + "app app dir next-font preconnect should add preconnect when preloading is disabled in layout", + "app app dir next-font preconnect should add preconnect when preloading is disabled in component", + "app app dir next-font preconnect should not preconnect when css is used but no fonts", + "app-old app dir next-font preload should preload correctly with server components", + "app-old app dir next-font preload should preload correctly with client components", + "app-old app dir next-font preload should preload correctly with layout using fonts", + "app-old app dir next-font preload should preload correctly with page using fonts", + "app-old app dir next-font preconnect should add preconnect when preloading is disabled in page", + "app-old app dir next-font preconnect should add preconnect when preloading is disabled in layout", + "app-old app dir next-font preconnect should add preconnect when preloading is disabled in component", + "app-old app dir next-font preconnect should not preconnect when css is used but no fonts" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/next-image/next-image-https.test.ts": { + "passed": [], + "failed": [ + "app dir next-image (with https) only runs on CI as it requires administrator privileges" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/404-page-router/index.test.ts": { + "passed": [ + "404-page-router 404-page-router with basePath of false and i18n of true and middleware false for /error?with=query should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of false and i18n of true and middleware false for /error should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of false and i18n of false and middleware false for /error?with=query should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of false and i18n of false and middleware false for /error should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of false and i18n of false and middleware true for /not/a/real/page?with=query should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of false and i18n of false and middleware true for /not/a/real/page should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of false and i18n of false and middleware true for /error?with=query should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of false and i18n of false and middleware true for /error should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of false and i18n of false and middleware true should not throw any errors when re-fetching the route info" + ], + "failed": [ + "404-page-router 404-page-router with basePath of false and i18n of true and middleware false for /not/a/real/page?with=query should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of false and i18n of true and middleware false for /not/a/real/page should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of false and i18n of true and middleware false should not throw any errors when re-fetching the route info", + "404-page-router 404-page-router with basePath of true and i18n of false and middleware false for /not/a/real/page?with=query should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of true and i18n of false and middleware false for /not/a/real/page should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of true and i18n of false and middleware false should not throw any errors when re-fetching the route info", + "404-page-router 404-page-router with basePath of true and i18n of true and middleware false for /not/a/real/page?with=query should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of true and i18n of true and middleware false for /not/a/real/page should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of true and i18n of true and middleware false should not throw any errors when re-fetching the route info", + "404-page-router 404-page-router with basePath of false and i18n of false and middleware false for /not/a/real/page?with=query should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of false and i18n of false and middleware false for /not/a/real/page should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of false and i18n of false and middleware false should not throw any errors when re-fetching the route info", + "404-page-router 404-page-router with basePath of true and i18n of false and middleware false for /docs/error?with=query should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of true and i18n of false and middleware false for /docs/error should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of true and i18n of true and middleware false for /docs/error?with=query should have the correct router parameters after it is ready", + "404-page-router 404-page-router with basePath of true and i18n of true and middleware false for /docs/error should have the correct router parameters after it is ready" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/app-dir/metadata/metadata.test.ts": { + "passed": [], + "failed": [ + "app dir - metadata basic should support other basic tags (edge)", + "app dir - metadata opengraph should pick up opengraph-image and twitter-image as static metadata files", + "app dir - metadata icons should support root level of favicon.ico", + "app dir - metadata file based icons should render icon and apple touch icon meta if their images are specified", + "app dir - metadata file based icons should not render if image file is not specified", + "app dir - metadata file based icons should handle hmr updates to the file icon", + "app dir - metadata static routes should have icons as route", + "app dir - metadata basic should support title and description", + "app dir - metadata basic should support title template", + "app dir - metadata basic should support stashed title in one layer of page and layout", + "app dir - metadata basic should use parent layout title when no title is defined in page", + "app dir - metadata basic should support stashed title in two layers of page and layout", + "app dir - metadata basic should support other basic tags", + "app dir - metadata basic should support apple related tags `itunes` and `appWebApp`", + "app dir - metadata basic should support alternate tags", + "app dir - metadata basic should relative canonical url", + "app dir - metadata basic should support robots tags", + "app dir - metadata basic should support verification tags", + "app dir - metadata basic should support appLinks tags", + "app dir - metadata basic should apply metadata when navigating client-side", + "app dir - metadata basic should support generateMetadata export", + "app dir - metadata basic should handle metadataBase for urls resolved as only URL type", + "app dir - metadata opengraph should support opengraph tags", + "app dir - metadata opengraph should support opengraph with article type", + "app dir - metadata opengraph should override file based images when opengraph-image and twitter-image specify images property", + "app dir - metadata navigation should render root not-found with default metadata", + "app dir - metadata navigation should support notFound in generateMetadata", + "app dir - metadata navigation should support redirect in generateMetadata", + "app dir - metadata icons should support basic object icons field", + "app dir - metadata icons should support basic string icons field", + "app dir - metadata icons should support basic complex descriptor icons field", + "app dir - metadata icons should merge icons from layout if no static icons files are specified", + "app dir - metadata icons should not hoist meta[itemProp] to head", + "app dir - metadata twitter should support twitter card summary_large_image when image present", + "app dir - metadata twitter should render twitter card summary when image is not present", + "app dir - metadata twitter should support default twitter player card", + "app dir - metadata twitter should support default twitter app card", + "app dir - metadata static routes should have /favicon.ico as route", + "app dir - metadata static routes should support root dir robots.txt", + "app dir - metadata static routes should support sitemap.xml under every routes", + "app dir - metadata static routes should support static manifest.webmanifest", + "app dir - metadata static routes should build favicon.ico as a custom route", + "app dir - metadata static optimization should build static files into static route", + "app dir - metadata react cache should have same title and page value on initial load", + "app dir - metadata react cache should have same title and page value when navigating", + "app dir - metadata should not effect metadata images convention like files under pages directory" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/navigation/navigation.test.ts": { + "passed": [ + "app dir - navigation query string should set query correctly", + "app dir - navigation hash should scroll to the specified hash", + "app dir - navigation hash should not scroll to hash when scroll={false} is set", + "app dir - navigation hash-link-back-to-same-page should scroll to the specified hash", + "app dir - navigation relative hashes and queries should work with a hash-only href", + "app dir - navigation relative hashes and queries should work with a query-only href", + "app dir - navigation bots should block rendering for bots and return 404 status", + "app dir - navigation redirect components should redirect in a server component", + "app dir - navigation redirect components should redirect in a client component", + "app dir - navigation redirect components should redirect to external url", + "app dir - navigation redirect next.config.js redirects should redirect from next.config.js", + "app dir - navigation redirect next.config.js redirects should redirect from next.config.js with link navigation", + "app dir - navigation redirect status code should respond with 307 status code in server component", + "app dir - navigation redirect status code should respond with 307 status code in client component", + "app dir - navigation redirect status code should respond with 308 status code if permanent flag is set", + "app dir - navigation navigation between pages and app should not contain _rsc query while navigating from app to pages", + "app dir - navigation navigation between pages and app should not contain _rsc query while navigating from pages to app", + "app dir - navigation nested navigation should navigate to nested pages", + "app dir - navigation SEO should emit noindex meta tag for not found page when streaming", + "app dir - navigation SEO should emit refresh meta tag for redirect page when streaming", + "app dir - navigation SEO should emit refresh meta tag (permanent) for redirect page when streaming", + "app dir - navigation SEO should contain default meta tags in error page", + "app dir - navigation SEO should not log 404 errors in ipc server", + "app dir - navigation navigations when attaching a Proxy to `window.Promise` should navigate without issue" + ], + "failed": [ + "app dir - navigation query string should handle unicode search params", + "app dir - navigation hash-with-scroll-offset should scroll to the specified hash", + "app dir - navigation relative hashes and queries should work with a hash-only `router.push(...)`", + "app dir - navigation relative hashes and queries should work with both relative hashes and queries", + "app dir - navigation not-found should trigger not-found in a server component", + "app dir - navigation not-found should trigger not-found in a client component", + "app dir - navigation not-found should trigger not-found client-side", + "app dir - navigation not-found should trigger not-found while streaming", + "app dir - navigation redirect components should redirect client-side", + "app dir - navigation redirect components should redirect to external url, initiating only once", + "app dir - navigation redirect middleware redirects should redirect from middleware", + "app dir - navigation redirect middleware redirects should redirect from middleware with link navigation", + "app dir - navigation external push should push external url without affecting hooks", + "app dir - navigation navigation between pages and app should not continously initiate a mpa navigation to the same URL when router state changes" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/not-found/conflict-route/index.test.ts": { + "passed": [], + "failed": [ + "app dir - not-found - conflict route with default runtime should allow to have a valid /not-found route", + "app dir - not-found - conflict route with runtime = edge should use the not-found page for non-matching routes", + "app dir - not-found - conflict route with runtime = edge should allow to have a valid /not-found route", + "app dir - not-found - conflict route with default runtime should use the not-found page for non-matching routes" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/not-found/css-precedence/index.test.ts": { + "passed": [], + "failed": [ + "app dir css should load css while navigation between not-found and page" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/not-found/group-route-root-not-found/index.test.ts": { + "passed": [], + "failed": [ + "app dir - group routes with root not-found should render default 404 with root layout for non-existent page", + "app dir - group routes with root not-found should render root not found for group routes if hit 404" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/next-image/next-image.test.ts": { + "passed": [], + "failed": [ + "app dir next-image ssr content should render images on / route", + "app dir next-image ssr content should render images on /client route", + "app dir next-image ssr content should render images nested under page dir on /nested route", + "app dir next-image browser content should render images on / route", + "app dir next-image browser content should render images on /client route", + "app dir next-image browser content should render images nested under page dir on /nested route", + "app dir next-image image content should render images on / route", + "app dir next-image image content should render legacy images in edge runtime on /legacy-edge-runtime route", + "app dir next-image image content should render images on /client route", + "app dir next-image image content should render images nested under page dir on /nested route", + "app dir next-image image content should render legacy images under /legacy route" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/not-found/group-route/index.test.ts": { + "passed": [], + "failed": [ + "app dir - not-found - group route with runtime = edge should use the not-found page under group routes", + "app dir - not-found - group route with default runtime should use the not-found page under group routes" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/app/index.test.ts": { + "passed": [], + "failed": [ + "app dir should work for catch-all edge page", + "app dir should have correct searchParams and params (server)", + "app dir should have correct searchParams and params (client)", + "app dir should encode chunk path correctly", + "app dir should match redirects in pages correctly $path", + "app dir should not apply client router filter on shallow", + "app dir should not have duplicate config warnings", + "app dir should not share edge workers", + "app dir should use text/x-component for flight", + "app dir should use text/x-component for flight with edge runtime", + "app dir should return the `vary` header from edge runtime", + "app dir should return the `vary` header from pages for flight requests", + "app dir should pass props from getServerSideProps in root layout", + "app dir should serve from pages", + "app dir should serve dynamic route from pages", + "app dir should serve from public", + "app dir should serve from app", + "app dir should ensure the suffix is at the end of the stream", + "app dir should serve /index as separate page", + "app dir should serve polyfills for browsers that do not support modules", + "app dir should include layouts when no direct parent layout", + "app dir should use new root layout when provided", + "app dir should not create new root layout when nested (optional)", + "app dir should include parent document when no direct parent layout", + "app dir should not include parent when not in parent directory", + "app dir should serve nested parent", + "app dir should serve dynamic parameter", + "app dir should serve page as a segment name correctly", + "app dir should include document html and body", + "app dir should not serve when layout is provided but no folder index", + "app dir rewrites should support rewrites on initial load", + "app dir rewrites should support rewrites on client-side navigation from pages to app with existing pages path", + "app dir rewrites should support rewrites on client-side navigation", + "app dir should handle hash in initial url", + "app dir should hard push", + "app dir should hard replace", + "app dir should soft push", + "app dir should be soft for back navigation", + "app dir should be soft for forward navigation", + "app dir should allow linking from app page to pages page", + "app dir should navigate to pages dynamic route from pages page if it overlaps with an app page", + "app dir should push to external url", + "app dir should replace to external url", + "app dir server components should not serve .server.js as a path", + "app dir server components should not serve .client.js as a path", + "app dir server components should serve shared component", + "app dir server components dynamic routes should only pass params that apply to the layout", + "app dir server components catch-all routes should handle optional segments", + "app dir server components catch-all routes should handle optional segments root", + "app dir server components catch-all routes should handle optional catch-all segments link", + "app dir server components catch-all routes should handle required segments", + "app dir server components catch-all routes should handle required segments root as not found", + "app dir server components catch-all routes should handle catch-all segments link", + "app dir server components should serve client component should serve server-side", + "app dir server components should serve client component should serve client-side", + "app dir server components should include client component layout with server component route should include it server-side", + "app dir server components should include client component layout with server component route should include it client-side", + "app dir server components Loading should render loading.js in initial html for slow page", + "app dir server components Loading should render loading.js in browser for slow page", + "app dir server components Loading should render loading.js in initial html for slow layout", + "app dir server components Loading should render loading.js in browser for slow layout", + "app dir server components Loading should render loading.js in initial html for slow layout and page", + "app dir server components Loading should render loading.js in browser for slow layout and page", + "app dir server components middleware should strip internal query parameters from requests to middleware for rewrite", + "app dir server components middleware should strip internal query parameters from requests to middleware for redirect", + "app dir server components next/router should support router.back and router.forward", + "app dir server components client components should have consistent query and params handling", + "app dir HMR should HMR correctly for server component", + "app dir HMR should HMR correctly for client component", + "app dir searchParams prop client component should have the correct search params", + "app dir searchParams prop client component should have the correct search params on rewrite", + "app dir searchParams prop client component should have the correct search params on middleware rewrite", + "app dir searchParams prop server component should have the correct search params", + "app dir searchParams prop server component should have the correct search params on rewrite", + "app dir searchParams prop server component should have the correct search params on middleware rewrite", + "app dir template component should render the template that holds state in a client component and reset on navigation", + "app dir error component should trigger error component when an error happens during rendering", + "app dir error component should trigger error component when an error happens during server components rendering", + "app dir error component should use default error boundary for prod and overlay for dev when no error component specified", + "app dir error component should display error digest for error in server component with default error boundary", + "app dir known bugs should support React cache server component", + "app dir known bugs should support React cache server component client-navigation", + "app dir known bugs should support React cache client component", + "app dir known bugs should support React cache client component client-navigation", + "app dir known bugs should support React cache middleware overriding headers", + "app dir known bugs should support React fetch instrumentation server component", + "app dir known bugs should support React fetch instrumentation server component client-navigation", + "app dir known bugs should not share flight data between requests", + "app dir known bugs should handle router.refresh without resetting state", + "app dir known bugs should handle as on next/link", + "app dir known bugs should handle next/link back to initially loaded page", + "app dir known bugs should not do additional pushState when already on the page", + "app dir next/script should support next/script and render in correct order", + "app dir next/script should insert preload tags for beforeInteractive and afterInteractive scripts", + "app dir next/script should load stylesheets for next/scripts", + "app dir data fetch with response over 16KB with chunked encoding should load page when fetching a large amount of data", + "app dir bootstrap scripts should only bootstrap with one script, prinitializing the rest", + "app dir bootstrap scripts should fail to bootstrap when using CSP in Dev due to eval", + "app dir should use RSC prefetch data from build", + "app dir should have correct size in build output", + "app dir should have correct preferredRegion values in manifest", + "app dir should successfully detect app route during prefetch", + "app dir should generate build traces correctly", + "app dir should not rerender layout when navigating between routes in the same layout", + "app dir Subresource Integrity does not include nonce when not enabled", + "app dir Subresource Integrity includes a nonce value with inline scripts when Content-Security-Policy header is defined", + "app dir Subresource Integrity includes a nonce value with bootstrap scripts when Content-Security-Policy header is defined", + "app dir Subresource Integrity includes an integrity attribute on scripts", + "app dir Subresource Integrity throws when escape characters are included in nonce", + "app dir template component should render the template that is a server component and rerender on navigation", + "app dir error component should allow resetting error boundary", + "app dir error component should hydrate empty shell to handle server-side rendering errors", + "app dir bootstrap scripts should successfully bootstrap even when using CSP" + ], + "pending": [ + "app dir should handle css imports in next/dynamic correctly", + "app dir should not include parent when not in parent directory with route in directory", + "app dir should match partial parameters", + "app dir should not rerender layout when navigating between routes in the same layout", + "app dir should soft replace", + "app dir HMR should HMR correctly when changing the component type", + "app dir Subresource Integrity does not include nonce when not enabled", + "app dir Subresource Integrity includes a nonce value with inline scripts when Content-Security-Policy header is defined", + "app dir Subresource Integrity includes a nonce value with bootstrap scripts when Content-Security-Policy header is defined", + "app dir Subresource Integrity includes an integrity attribute on scripts", + "app dir Subresource Integrity throws when escape characters are included in nonce", + "app dir template component should render the template that is a server component and rerender on navigation", + "app dir known bugs should support React fetch instrumentation client component", + "app dir known bugs should support React fetch instrumentation client component client-navigation" + ], + "runtimeError": true + }, + "test/e2e/app-dir/app/useReportWebVitals.test.ts": { + "passed": [], + "failed": [ + "useReportWebVitals hook should send web-vitals to vercel-insights" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/app-dir/parallel-routes-not-found/parallel-routes-not-found.test.ts": { + "passed": [], + "failed": [ + "parallel-routes-and-interception should not render the @children slot when the @slot is not found" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/params-hooks-compat/index.test.ts": { + "passed": [ + "app-dir - params hooks compat should only access search params with useSearchParams", + "app-dir - params hooks compat should only access path params with useParams" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/root-layout-redirect/root-layout-redirect.test.ts": { + "passed": [], + "failed": ["root-layout-redirect should work using browser"], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/root-layout-render-once/index.test.ts": { + "passed": [], + "failed": [ + "app-dir root layout render once should only render root layout once" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/rewrites-redirects/rewrites-redirects.test.ts": { + "passed": [ + "redirects and rewrites navigation using link should rewrite from next.config.js correctly", + "redirects and rewrites navigation using link should redirect from next.config.js correctly", + "redirects and rewrites navigation using link should redirect using catchall from next.config.js correctly" + ], + "failed": [ + "redirects and rewrites navigation using link should rewrite from middleware correctly", + "redirects and rewrites navigation using link should redirect from middleware correctly", + "redirects and rewrites navigation using button should rewrite from middleware correctly", + "redirects and rewrites navigation using button should redirect from middleware correctly", + "redirects and rewrites navigation using button should rewrite from next.config.js correctly", + "redirects and rewrites navigation using button should redirect from next.config.js correctly", + "redirects and rewrites navigation using button should redirect using catchall from next.config.js correctly" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/pages-to-app-routing/pages-to-app-routing.test.ts": { + "passed": [], + "failed": ["pages-to-app-routing should work using browser"], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/route-page-manifest-bug/route-page-manifest-bug.test.ts": { + "passed": [ + "route-page-manifest-bug should work when requesting route handler after page" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/router-stuck-dynamic-static-segment/router-stuck-dynamic-static-segment.test.ts": { + "passed": [ + "router-stuck-dynamic-static-segment should allow navigation between dynamic parameter and static parameter of the same value" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/router-autoscroll/router-autoscroll.test.ts": { + "passed": [ + "router autoscrolling on navigation vertical scroll should not scroll when the top of the page is in the viewport", + "router autoscrolling on navigation vertical scroll should not scroll to top of document if page in viewport", + "router autoscrolling on navigation router.refresh() should not scroll when called alone", + "router autoscrolling on navigation bugs Should scroll to the top of the layout when the first child is display none", + "router autoscrolling on navigation bugs Should scroll to the top of the layout when the first child is position fixed", + "router autoscrolling on navigation bugs Should scroll to the top of the layout when the first child is position sticky", + "router autoscrolling on navigation bugs Should apply scroll when loading.js is used" + ], + "failed": [ + "router autoscrolling on navigation vertical scroll should scroll to top of document when navigating between to pages without layout", + "router autoscrolling on navigation vertical scroll should scroll to top of page when scrolling to phe top of the document wouldn't have the page in the viewport", + "router autoscrolling on navigation vertical scroll should scroll down to the navigated page when it's below viewort", + "router autoscrolling on navigation vertical scroll should scroll to top of document if possible while giving focus to page", + "router autoscrolling on navigation horizontal scroll should't scroll horizontally", + "router autoscrolling on navigation router.refresh() should not stop router.push() from scrolling" + ], + "pending": [ + "router autoscrolling on navigation router.refresh() should not scroll the page when we hot reload" + ], + "runtimeError": false + }, + "test/e2e/app-dir/search-params-react-key/layout-params.test.ts": { + "passed": [], + "failed": [ + "app dir - search params keys should keep the React router instance the same when changing the search params" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/searchparams-static-bailout/searchparams-static-bailout.test.ts": { + "passed": [ + "searchparams-static-bailout server component should bailout when using searchParams", + "searchparams-static-bailout server component should not bailout when not using searchParams", + "searchparams-static-bailout client component should bailout when using searchParams", + "searchparams-static-bailout client component should bailout when using searchParams is passed to client component", + "searchparams-static-bailout client component should not bailout when not using searchParams" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/not-found-default/index.test.ts": { + "passed": [], + "failed": [ + "app dir - not found with default 404 page should render default 404 with root layout for non-existent page", + "app dir - not found with default 404 page should be able to navigate to page calling not-found", + "app dir - not found with default 404 page should be able to navigate to page with calling not-found in metadata", + "app dir - not found with default 404 page should render default not found for group routes if not found is not defined", + "app dir - not found with default 404 page should error on client notFound from root layout in browser", + "app dir - not found with default 404 page should error on server notFound from root layout on server-side" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/not-found/basic/index.test.ts": { + "passed": [ + "app dir - not-found - basic with default runtime should not reload the page", + "app dir - not-found - basic should not output /404 in tree view logs", + "app dir - not-found - basic should use root not-found content for 404 html", + "app dir - not-found - basic with default runtime should create the 404 mapping and copy the file to pages" + ], + "failed": [ + "app dir - not-found - basic with default runtime should render the 404 page when the file is removed, and restore the page when re-added", + "app dir - not-found - basic with runtime = edge should use the not-found page for non-matching routes", + "app dir - not-found - basic with runtime = edge should match dynamic route not-found boundary correctly", + "app dir - not-found - basic with runtime = edge should escalate notFound to parent layout if no not-found boundary present in current layer", + "app dir - not-found - basic with runtime = edge should not reload the page", + "app dir - not-found - basic with runtime = edge should render the 404 page when the file is removed, and restore the page when re-added", + "app dir - not-found - basic should include not found client reference manifest in the file trace", + "app dir - not-found - basic with default runtime should use the not-found page for non-matching routes", + "app dir - not-found - basic with default runtime should match dynamic route not-found boundary correctly", + "app dir - not-found - basic with default runtime should escalate notFound to parent layout if no not-found boundary present in current layer" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/root-layout/root-layout.test.ts": { + "passed": [], + "failed": [ + "app-dir root layout Should do a mpa navigation when switching root layout should work with route groups", + "app-dir root layout Should do a mpa navigation when switching root layout should work with parallel routes", + "app-dir root layout Should do a mpa navigation when switching root layout should work with basic routes", + "app-dir root layout Should do a mpa navigation when switching root layout should work with dynamic routes", + "app-dir root layout Should do a mpa navigation when switching root layout should work with dynamic catchall routes", + "app-dir root layout Should do a mpa navigation when switching root layout should work with static routes", + "app-dir root layout should correctly handle navigation between multiple root layouts" + ], + "pending": [ + "app-dir root layout Missing required tags should error on page load", + "app-dir root layout Missing required tags should error on page navigation", + "app-dir root layout Missing required tags should error on page load on static generation" + ], + "runtimeError": false + }, + "test/e2e/app-dir/server-actions-relative-redirect/server-actions-relative-redirect.test.ts": { + "passed": [], + "failed": [ + "server-actions-relative-redirect should work with relative redirect", + "server-actions-relative-redirect should work with absolute redirect" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/app-dir/rsc-basic/rsc-basic.test.ts": { + "passed": [], + "failed": [ + "app dir - rsc basics should create client reference successfully for all file conventions", + "app dir - rsc basics should support webpack loader rules", + "app dir - rsc basics react@experimental should opt into the react@experimental when enabling ppr", + "app dir - rsc basics react@experimental should opt into the react@experimental when enabling serverActions", + "app dir - rsc basics should correctly render page returning null", + "app dir - rsc basics should correctly render component returning null", + "app dir - rsc basics should correctly render layout returning null", + "app dir - rsc basics should correctly render page returning undefined", + "app dir - rsc basics should correctly render component returning undefined", + "app dir - rsc basics should correctly render layout returning undefined", + "app dir - rsc basics should render server components correctly", + "app dir - rsc basics should reuse the inline flight response without sending extra requests", + "app dir - rsc basics should support multi-level server component imports", + "app dir - rsc basics should be able to navigate between rsc routes", + "app dir - rsc basics should handle streaming server components correctly", + "app dir - rsc basics should track client components in dynamic imports", + "app dir - rsc basics should support next/link in server components", + "app dir - rsc basics should link correctly with next/link without mpa navigation to the page", + "app dir - rsc basics should escape streaming data correctly", + "app dir - rsc basics should render built-in 404 page for missing route if pagesDir is not presented", + "app dir - rsc basics should suspense next/legacy/image in server components", + "app dir - rsc basics should suspense next/image in server components", + "app dir - rsc basics should handle various kinds of exports correctly", + "app dir - rsc basics should support native modules in server component", + "app dir - rsc basics should resolve different kinds of components correctly", + "app dir - rsc basics should render initial styles of css-in-js in nodejs SSR correctly", + "app dir - rsc basics should render initial styles of css-in-js in edge SSR correctly", + "app dir - rsc basics should render css-in-js suspense boundary correctly", + "app dir - rsc basics should stick to the url without trailing /page suffix", + "app dir - rsc basics should support streaming for flight response", + "app dir - rsc basics should support partial hydration with inlined server data", + "app dir - rsc basics should not apply rsc syntax checks in pages/api", + "app dir - rsc basics should not use bundled react for pages with app", + "app dir - rsc basics should use canary react for app", + "app dir - rsc basics should generate edge SSR manifests for Node.js" + ], + "pending": [ + "app dir - rsc basics should support partial hydration with inlined server data in browser" + ], + "runtimeError": true + }, + "test/e2e/app-dir/parallel-routes-and-interception/parallel-routes-and-interception.test.ts": { + "passed": [], + "failed": [ + "parallel-routes-and-interception parallel routes should support parallel route tab bars", + "parallel-routes-and-interception parallel routes should match parallel routes in route groups", + "parallel-routes-and-interception parallel routes should throw an error when a route groups causes a conflict with a parallel segment", + "parallel-routes-and-interception parallel routes should throw a 404 when no matching parallel route is found", + "parallel-routes-and-interception parallel routes should support layout files in parallel routes", + "parallel-routes-and-interception parallel routes should only scroll to the parallel route that was navigated to", + "parallel-routes-and-interception parallel routes should navigate with a link with prefetch=false", + "parallel-routes-and-interception parallel routes should display all parallel route params with useParams", + "parallel-routes-and-interception parallel routes should support parallel routes with no page component", + "parallel-routes-and-interception parallel routes should support nested parallel routes", + "parallel-routes-and-interception route intercepting should render an intercepted route from a slot", + "parallel-routes-and-interception route intercepting should render an intercepted route at the top level from a nested path", + "parallel-routes-and-interception route intercepting should render modal when paired with parallel routes", + "parallel-routes-and-interception parallel routes should match parallel routes", + "parallel-routes-and-interception parallel routes should render nested parallel routes", + "parallel-routes-and-interception parallel routes should apply the catch-all route to the parallel route if no matching route is found", + "parallel-routes-and-interception route intercepting with dynamic routes should render intercepted route", + "parallel-routes-and-interception route intercepting with dynamic optional catch-all routes should render intercepted route", + "parallel-routes-and-interception route intercepting with dynamic catch-all routes should render intercepted route", + "parallel-routes-and-interception route intercepting should render intercepted route", + "parallel-routes-and-interception route intercepting should render intercepted route from a nested route", + "parallel-routes-and-interception route intercepting should re-render the layout on the server when it had a default child route", + "parallel-routes-and-interception route intercepting should support intercepting with beforeFiles rewrites" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/app-functional/test/index.test.js": { + "passed": [], + "failed": ["Document and App should not have any missing key warnings"], + "pending": [], + "runtimeError": false + }, + "test/integration/app-document/test/index.test.js": { + "passed": [], + "failed": [ + "Document and App should not have any missing key warnings", + "Document and App Rendering via HTTP _document should include required elements in rendered html", + "Document and App Rendering via HTTP _document Document.getInitialProps returns html prop representing app shell", + "Document and App Rendering via HTTP _document It adds nonces to all scripts and preload links", + "Document and App Rendering via HTTP _document It adds crossOrigin to all scripts and preload links", + "Document and App Rendering via HTTP _document It renders ctx.renderPage with enhancer correctly", + "Document and App Rendering via HTTP _document It renders ctx.renderPage with enhanceComponent correctly", + "Document and App Rendering via HTTP _document It renders ctx.renderPage with enhanceApp correctly", + "Document and App Rendering via HTTP _document It renders ctx.renderPage with enhanceApp and enhanceComponent correctly", + "Document and App Rendering via HTTP _document It adds a timestamp to link tags with preload attribute to invalidate the cache (DEV only)", + "Document and App Rendering via HTTP _app It shows a custom tag", + "Document and App Rendering via HTTP _app It should share module state with pages", + "Document and App Rendering via HTTP _app It should show valid error when thrown in _app getInitialProps", + "Document and App Client side should detect the changes to pages/_app.js and display it", + "Document and App Client side should detect the changes to pages/_document.js and display it", + "Document and App Client side should keep state between page navigations", + "Document and App Client side It should share module state with pages", + "Document and App With CSP enabled should load inline script by hash", + "Document and App With CSP enabled should load inline script by nonce" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/async-modules/test/index.test.js": { + "passed": [], + "failed": [ + "Async modules dev mode ssr async page modules", + "Async modules dev mode csr async page modules", + "Async modules dev mode works on async api routes", + "Async modules dev mode works with getServerSideProps", + "Async modules dev mode works with getStaticProps", + "Async modules dev mode can render async 404 pages", + "Async modules production mode ssr async page modules", + "Async modules production mode csr async page modules", + "Async modules production mode works on async api routes", + "Async modules production mode works with getServerSideProps", + "Async modules production mode works with getStaticProps", + "Async modules production mode can render async 404 pages", + "Async modules production mode can render async error page" + ], + "pending": [ + "Async modules dev mode can render async AMP pages", + "Async modules dev mode can render async error page", + "Async modules production mode can render async AMP pages" + ], + "runtimeError": false + }, + "test/integration/app-dynamic-error/test/index.test.ts": { + "passed": [ + "throws an error when prerendering a page with config dynamic error" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/app-types/app-types.test.js": { + "passed": [], + "failed": [ + "app type checking production mode should generate route types correctly and report link error", + "app type checking production mode should generate route types correctly and report router API errors", + "app type checking production mode should type check invalid entry exports" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/auto-export-error-bail/test/index.test.js": { + "passed": [ + "Auto Export _error bail server mode should not opt-out of auto static optimization from invalid _error" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/babel/test/index.test.js": { + "passed": [], + "failed": [ + "Babel Rendering via HTTP Should compile a page with flowtype correctly" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/auto-export-query-error/test/index.test.js": { + "passed": [ + "Auto Export server mode should show warning for query provided for auto exported page correctly" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/app-tree/test/index.test.js": { + "passed": [ + "AppTree dev mode should provide router context in AppTree on SSR", + "AppTree dev mode should provide router context in AppTree on CSR", + "AppTree dev mode should pass AppTree to NextPageContext", + "AppTree production mode should provide router context in AppTree on SSR", + "AppTree production mode should provide router context in AppTree on CSR", + "AppTree production mode should pass AppTree to NextPageContext" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/broken-webpack-plugin/test/index.test.js": { + "passed": [], + "failed": [ + "Handles a broken webpack plugin (precompile) should render error correctly" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/babel-custom/test/index.test.js": { + "passed": [], + "failed": [ + "Babel should allow setting babelrc env", + "Babel should allow setting targets.browsers", + "Babel should allow setting targets to a string", + "Babel should allow babelrc JSON5 syntax" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/auto-export/test/index.test.js": { + "passed": [ + "Auto Export production Supports commonjs 1", + "Auto Export production Supports commonjs 2", + "Auto Export production Refreshes query on mount", + "Auto Export production should update asPath after mount", + "Auto Export production should not replace URL with page name while asPath is delayed", + "Auto Export dev Supports commonjs 1", + "Auto Export dev Supports commonjs 2", + "Auto Export dev Refreshes query on mount", + "Auto Export dev should update asPath after mount", + "Auto Export dev should not replace URL with page name while asPath is delayed", + "Auto Export dev should not show hydration warning from mismatching asPath", + "Auto Export dev should include error link when hydration error does occur" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/build-trace-extra-entries-turbo/test/index.test.js": { + "passed": [], + "failed": [ + "build trace with extra entries should build and trace correctly" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/bigint/test/index.test.js": { + "passed": [ + "bigint API route support dev mode should return 200", + "bigint API route support dev mode should return the BigInt result text", + "bigint API route support server mode should return 200", + "bigint API route support server mode should return the BigInt result text" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/build-trace-extra-entries/test/index.test.js": { + "passed": [], + "failed": [ + "build trace with extra entries should build and trace correctly" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/catches-missing-getStaticProps/test/index.test.js": { + "passed": [ + "Catches Missing getStaticProps should catch it in dev mode", + "Catches Missing getStaticProps should catch it in server build mode" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/chunking/test/index.test.js": { + "passed": [], + "failed": [ + "Chunking should use all url friendly names", + "Chunking should create a framework chunk", + "Chunking should not create a commons chunk", + "Chunking should not create a lib chunk for react or react-dom", + "Chunking should not preload the build manifest", + "Chunking should execute the build manifest", + "Chunking should not include more than one instance of react-dom", + "Chunking Serving should hydrate with aggressive chunking", + "Chunking Serving should load chunks when navigating" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/clean-distdir/test/index.test.js": { + "passed": [ + "Cleaning distDir server mode should clean up .next before build start", + "Cleaning distDir disabled write should not clean up .next before build start" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/build-indicator/test/index.test.js": { + "passed": [ + "Build Activity Indicator should validate buildActivityPosition config", + "Build Activity Indicator Disabled with next.config.js Does not add the build indicator container" + ], + "failed": [ + "Build Activity Indicator Enabled Adds the build indicator container", + "Build Activity Indicator Enabled Shows the build indicator when a page is built during navigation", + "Build Activity Indicator Enabled Shows build indicator when page is built from modifying" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/client-navigation-a11y/test/index.test.js": { + "passed": [ + "Client Navigation accessibility should not have the initial route announced", + "Client Navigation accessibility has aria-live=\"assertive\" and role=\"alert\"", + "Client Navigation accessibility There is a title but no h1 tag has the innerText equal to the value of document.title", + "Client Navigation accessibility There is no title but a h1 tag has the innerText equal to the value of h1", + "Client Navigation accessibility There is a title and a h1 tag has the innerText equal to the value of h1", + "Client Navigation accessibility There is no title and no h1 tag has the innerText equal to the value of the pathname" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/build-warnings/test/index.test.js": { + "passed": [ + "Build warnings should not shown warning about minification withou any modification", + "Build warnings should not warn about missing cache in non-CI", + "Build warnings should not warn about missing cache on supported platforms", + "Build warnings should warn about missing cache in CI" + ], + "failed": [ + "Build warnings should shown warning about minification for minimize", + "Build warnings should shown warning about minification for minimizer" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/client-navigation/test/index.test.js": { + "passed": [], + "failed": [ + "Client Navigation should not reload when visiting /_error directly", + "Client Navigation with should navigate the page", + "Client Navigation with should have proper error when no children are provided", + "Client Navigation with should not throw error when one number type child is provided", + "Client Navigation with should navigate back after reload", + "Client Navigation with should navigate forwards after reload", + "Client Navigation with should error when calling onClick without event", + "Client Navigation with should navigate via the client side", + "Client Navigation with should navigate an absolute url", + "Client Navigation with should call mouse handlers with an absolute url", + "Client Navigation with should navigate an absolute local url", + "Client Navigation with should navigate an absolute local url with as", + "Client Navigation with tag inside the should navigate the page", + "Client Navigation with tag inside the should not navigate if the tag has a target", + "Client Navigation with tag inside the should not navigate if the click-event is modified", + "Client Navigation with tag inside the should not reload when link in svg is clicked", + "Client Navigation with unexpected nested tag should not redirect if passHref prop is not defined in Link", + "Client Navigation with unexpected nested tag should redirect if passHref prop is defined in Link", + "Client Navigation with empty getInitialProps() should render an error", + "Client Navigation with the same page but different querystring should navigate the page", + "Client Navigation with the same page but different querystring should remove querystring", + "Client Navigation with the current url should reload the page", + "Client Navigation with the current url should always replace the state", + "Client Navigation with onClick action should reload the page and perform additional action", + "Client Navigation with onClick action should not reload if default was prevented", + "Client Navigation with onClick action should always replace the state and perform additional action", + "Client Navigation resets scroll at the correct time should reset scroll before the new page runs its lifecycles ()", + "Client Navigation resets scroll at the correct time should reset scroll before the new page runs its lifecycles (Router#push)", + "Client Navigation resets scroll at the correct time should intentionally not reset scroll before the new page runs its lifecycles (Router#push)", + "Client Navigation with hash changes check hydration mis-match should not have hydration mis-match for hash link", + "Client Navigation with hash changes when hash change via Link should not run getInitialProps", + "Client Navigation with hash changes when hash change via Link should scroll to the specified position on the same page", + "Client Navigation with hash changes when hash change via Link should not scroll to hash when scroll={false} is set", + "Client Navigation with hash changes when hash change via Link should scroll to the specified position on the same page with a name property", + "Client Navigation with hash changes when hash change via Link should scroll to the specified position to a new page", + "Client Navigation with hash changes when hash change via Link should scroll to the specified CJK position to a new page", + "Client Navigation with hash changes when hash change via Link Should update asPath", + "Client Navigation with hash changes when hash change via A tag should not run getInitialProps", + "Client Navigation with hash changes when hash get removed should not run getInitialProps", + "Client Navigation with hash changes when hash get removed should not run getInitialProps when removing via back", + "Client Navigation with hash changes when hash set to empty should not run getInitialProps", + "Client Navigation with hash changes with state when passing state via hash change should increment the history state counter", + "Client Navigation with hash changes with state when passing state via hash change should increment the shallow history state counter", + "Client Navigation with shallow routing should update the url without running getInitialProps", + "Client Navigation with shallow routing should handle the back button and should not run getInitialProps", + "Client Navigation with shallow routing should run getInitialProps always when rending the page to the screen", + "Client Navigation with shallow routing should keep the scroll position on shallow routing", + "Client Navigation should scroll to top when the scroll option is set to true", + "Client Navigation with URL objects should work with ", + "Client Navigation with URL objects should work with \"Router.push\"", + "Client Navigation with URL objects should work with the \"replace\" prop", + "Client Navigation with URL objects should handle undefined in router.push", + "Client Navigation with querystring relative urls should work with Link", + "Client Navigation with querystring relative urls should work with router.push", + "Client Navigation with querystring relative urls should work with router.replace", + "Client Navigation with getInitialProp redirect should redirect the page via client side", + "Client Navigation with getInitialProp redirect should redirect the page when loading", + "Client Navigation with different types of urls should work with normal page", + "Client Navigation with different types of urls should work with dir/ page", + "Client Navigation with different types of urls should not work with /index page", + "Client Navigation with different types of urls should work with / page", + "Client Navigation with the HOC based router should navigate as expected", + "Client Navigation with asPath inside getInitialProps should show the correct asPath with a Link with as prop", + "Client Navigation with asPath inside getInitialProps should show the correct asPath with a Link without the as prop", + "Client Navigation with asPath with next/router should show the correct asPath", + "Client Navigation with asPath with next/router should navigate an absolute url on push", + "Client Navigation with asPath with next/router should navigate an absolute url on replace", + "Client Navigation with asPath with next/router should navigate an absolute local url on push", + "Client Navigation with asPath with next/router should navigate an absolute local url on replace", + "Client Navigation with asPath with next/link should use pushState with same href and different asPath", + "Client Navigation with asPath with next/link should detect asPath query changes correctly", + "Client Navigation runtime errors should show redbox when a client side error is thrown inside a component", + "Client Navigation runtime errors should show redbox when a client side error is thrown outside a component", + "Client Navigation with 404 pages should 404 on not existent page", + "Client Navigation with 404 pages should 404 on wrong casing", + "Client Navigation with 404 pages should get url dynamic param", + "Client Navigation with 404 pages should 404 on wrong casing of url dynamic param", + "Client Navigation with 404 pages should not 404 for /", + "Client Navigation with 404 pages should should not contain a page script in a 404 page", + "Client Navigation updating head while client routing should only execute async and defer scripts once", + "Client Navigation updating head while client routing should warn when stylesheets or scripts are in head", + "Client Navigation updating head while client routing should warn when scripts are in head", + "Client Navigation updating head while client routing should not warn when application/ld+json scripts are in head", + "Client Navigation updating head while client routing should update head during client routing", + "Client Navigation updating head while client routing should update title during client routing", + "Client Navigation updating head while client routing should update head when unmounting component", + "Client Navigation foreign history manipulation should ignore history state without options", + "Client Navigation foreign history manipulation should ignore history state with an invalid url", + "Client Navigation foreign history manipulation should ignore foreign history state with missing properties", + "Client Navigation should not error on module.exports + polyfills", + "Client Navigation should work on nested /index/index.js", + "Client Navigation should handle undefined prop in head client-side", + "Client Navigation should emit routeChangeError on hash change cancel", + "Client Navigation should navigate to paths relative to the current page", + "Client Navigation Rendering via HTTP renders a stateless component", + "Client Navigation Rendering via HTTP should should not contain scripts that are not js", + "Client Navigation Rendering via HTTP should handle undefined prop in head server-side", + "Client Navigation Rendering via HTTP renders with fragment syntax", + "Client Navigation Rendering via HTTP renders when component is a forwardRef instance", + "Client Navigation Rendering via HTTP renders when component is a memo instance", + "Client Navigation Rendering via HTTP header renders default charset", + "Client Navigation Rendering via HTTP header renders default viewport", + "Client Navigation Rendering via HTTP header helper renders header information", + "Client Navigation Rendering via HTTP header helper dedupes tags", + "Client Navigation Rendering via HTTP header helper dedupes tags with the same key as the default", + "Client Navigation Rendering via HTTP header helper avoids dedupe of specific tags", + "Client Navigation Rendering via HTTP header helper avoids dedupe of meta tags with the same name if they use unique keys", + "Client Navigation Rendering via HTTP header helper renders Fragment children", + "Client Navigation Rendering via HTTP header helper renders boolean attributes correctly children", + "Client Navigation Rendering via HTTP should place charset element at the top of ", + "Client Navigation Rendering via HTTP should render the page with custom extension", + "Client Navigation Rendering via HTTP should render the page without `err` property", + "Client Navigation Rendering via HTTP should render the page with `nextExport` property", + "Client Navigation Rendering via HTTP should render the page without `nextExport` property", + "Client Navigation Rendering via HTTP renders styled jsx", + "Client Navigation Rendering via HTTP renders styled jsx external", + "Client Navigation Rendering via HTTP renders properties populated asynchronously", + "Client Navigation Rendering via HTTP renders a link component", + "Client Navigation Rendering via HTTP getInitialProps circular structure", + "Client Navigation Rendering via HTTP getInitialProps should be class method", + "Client Navigation Rendering via HTTP getInitialProps resolves to null", + "Client Navigation Rendering via HTTP default Content-Type", + "Client Navigation Rendering via HTTP setting Content-Type in getInitialProps", + "Client Navigation Rendering via HTTP should render 404 for _next routes that do not exist", + "Client Navigation Rendering via HTTP should render page that has module.exports anywhere", + "Client Navigation Rendering via HTTP allows to import .json files", + "Client Navigation Rendering via HTTP default export is not a React Component", + "Client Navigation Rendering via HTTP error-inside-page", + "Client Navigation Rendering via HTTP error-in-the-global-scope", + "Client Navigation Rendering via HTTP should set Cache-Control header", + "Client Navigation Rendering via HTTP asPath", + "Client Navigation Rendering via HTTP 404 should 404 on not existent page", + "Client Navigation Rendering via HTTP 404 should 404 on wrong casing", + "Client Navigation Rendering via HTTP 404 should not 404 for /", + "Client Navigation Rendering via HTTP 404 should should not contain a page script in a 404 page", + "Client Navigation Rendering via HTTP with the HOC based router should navigate as expected", + "Client Navigation Rendering via HTTP with the HOC based router should include asPath", + "Client Navigation Rendering via HTTP should show a valid error when undefined is thrown" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/client-404/test/index.test.js": { + "passed": [ + "Client 404 dev mode Client Navigation 404 should show 404 upon client replacestate should navigate the page", + "Client 404 dev mode Client Navigation 404 should hard navigate to URL on failing to load bundle", + "Client 404 production mode Client Navigation 404 should show 404 upon client replacestate should navigate the page", + "Client 404 production mode Client Navigation 404 should hard navigate to URL on failing to load bundle", + "Client 404 production mode Client Navigation 404 should hard navigate to URL on failing to load missing bundle" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/compression/test/index.test.js": { + "passed": ["Compression should compress responses by default"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/build-output/test/index.test.js": { + "passed": [ + "Build Output Basic Application Output (experimental: {}) should print duration when rendering or get static props takes long", + "Build Output Basic Application Output (experimental: {}) should not emit extracted comments", + "Build Output Basic Application Output (experimental: {\"gzipSize\":false}) should print duration when rendering or get static props takes long", + "Build Output Basic Application Output (experimental: {\"gzipSize\":false}) should not emit extracted comments", + "Build Output Custom Static Error Output should not specify /404 as lambda when static" + ], + "failed": [ + "Build Output Basic Application Output (experimental: {}) should not include internal pages", + "Build Output Basic Application Output (experimental: {\"gzipSize\":false}) should not include internal pages", + "Build Output Custom App Output should not include custom error", + "Build Output With AMP Output should not include custom error", + "Build Output Custom Error Output should not include custom app" + ], + "pending": [ + "Build Output Basic Application Output (experimental: {}) should not deviate from snapshot", + "Build Output Basic Application Output (experimental: {\"gzipSize\":false}) should not deviate from snapshot" + ], + "runtimeError": false + }, + "test/integration/config-mjs/test/index.test.js": { + "passed": [], + "failed": [ + "Configuration should disable X-Powered-By header support", + "Configuration renders server config on the server only", + "Configuration renders public config on the server only", + "Configuration renders the build id in development mode", + "Configuration correctly imports a package that defines `module` but no `main` in package.json", + "Configuration should have config available on the client" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/config-experimental-warning/test/index.test.js": { + "passed": [ + "Config Experimental Warning should not show warning with default config from function", + "Config Experimental Warning should not show warning with config from object", + "Config Experimental Warning should show warning with config from object with experimental", + "Config Experimental Warning should show warning with config from function with experimental", + "Config Experimental Warning should not show warning with default value" + ], + "failed": [ + "Config Experimental Warning should show warning with config from object with experimental and multiple keys", + "Config Experimental Warning should show warning for dropped experimental.appDir option" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/cli/test/index.test.js": { + "passed": [ + "CLI Usage start should exit when SIGINT is signalled", + "CLI Usage start should exit when SIGTERM is signalled", + "CLI Usage start --help", + "CLI Usage start -h", + "CLI Usage start should format IPv6 addresses correctly", + "CLI Usage start should warn when unknown argument provided", + "CLI Usage start should not throw UnhandledPromiseRejectionWarning", + "CLI Usage start duplicate sass deps", + "CLI Usage start invalid directory", + "CLI Usage start --keepAliveTimeout string arg", + "CLI Usage start --keepAliveTimeout negative number", + "CLI Usage start --keepAliveTimeout Infinity", + "CLI Usage start --keepAliveTimeout happy path", + "CLI Usage start should not start on a port out of range", + "CLI Usage start should not start on a reserved port", + "CLI Usage no command --help", + "CLI Usage no command -h", + "CLI Usage no command --version", + "CLI Usage no command -v", + "CLI Usage no command invalid directory", + "CLI Usage no command detects command typos", + "CLI Usage build --help", + "CLI Usage build -h", + "CLI Usage build should warn when unknown argument provided", + "CLI Usage build should not throw UnhandledPromiseRejectionWarning", + "CLI Usage build should exit when SIGINT is signalled", + "CLI Usage build should exit when SIGTERM is signalled", + "CLI Usage build invalid directory", + "CLI Usage dev --help", + "CLI Usage dev -h", + "CLI Usage dev custom directory", + "CLI Usage dev --port", + "CLI Usage dev --port 0", + "CLI Usage dev PORT=0", + "CLI Usage dev NODE_OPTIONS='--inspect'", + "CLI Usage dev -p", + "CLI Usage dev --hostname", + "CLI Usage dev -H", + "CLI Usage dev --experimental-https", + "CLI Usage dev --experimental-https with provided key/cert", + "CLI Usage dev should format IPv6 addresses correctly", + "CLI Usage dev should warn when unknown argument provided", + "CLI Usage dev should not throw UnhandledPromiseRejectionWarning", + "CLI Usage dev should exit when SIGINT is signalled", + "CLI Usage dev should exit when SIGTERM is signalled", + "CLI Usage dev invalid directory", + "CLI Usage export --help", + "CLI Usage export -h", + "CLI Usage export should warn when unknown argument provided", + "CLI Usage export should not throw UnhandledPromiseRejectionWarning", + "CLI Usage export invalid directory", + "CLI Usage telemetry --help", + "CLI Usage telemetry -h", + "CLI Usage telemetry should warn when unknown argument provided", + "CLI Usage telemetry should not throw UnhandledPromiseRejectionWarning", + "CLI Usage info --help", + "CLI Usage info -h", + "CLI Usage info should print output", + "CLI Usage info should print output with next.config.mjs" + ], + "failed": ["CLI Usage dev -p conflict", "CLI Usage dev -p reserved"], + "pending": [], + "runtimeError": false + }, + "test/integration/client-shallow-routing/test/index.test.js": { + "passed": [ + "Client Shallow Routing dev mode should not shallowly navigate back in history when current page was not shallow", + "Client Shallow Routing dev mode should not shallowly navigate forwards in history when current page was not shallow", + "Client Shallow Routing production mode should not shallowly navigate back in history when current page was not shallow", + "Client Shallow Routing production mode should not shallowly navigate forwards in history when current page was not shallow" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/config-devtool-dev/test/index.test.js": { + "passed": [], + "failed": [ + "devtool set in development mode in next config should warn and revert when a devtool is set in development mode" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/config-output-export/test/index.test.ts": { + "passed": [ + "config-output-export should work with static homepage", + "config-output-export should error with \"i18n\" config", + "config-output-export should error with \"rewrites\" config", + "config-output-export should error with \"redirects\" config", + "config-output-export should error with \"headers\" config", + "config-output-export should error with api routes function", + "config-output-export should error with middleware function", + "config-output-export should error with getStaticProps and revalidate 10 seconds (ISR)", + "config-output-export should work with getStaticProps and revalidate false", + "config-output-export should work with getStaticProps and without revalidate", + "config-output-export should error with getServerSideProps without fallback", + "config-output-export should error with getStaticPaths and fallback true", + "config-output-export should error with getStaticPaths and fallback blocking", + "config-output-export should work with getStaticPaths and fallback false" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/basepath-root-catch-all/test/index.test.js": { + "passed": [], + "failed": [ + "dev mode should use correct data URL for root catch-all", + "production mode should use correct data URL for root catch-all" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/set-cookies/set-cookies.test.ts": { + "passed": [], + "failed": [ + "set-cookies for edge runtime for /pages should set two set-cookie headers", + "set-cookies for edge runtime for /app should set two set-cookie headers", + "set-cookies for experimental-edge runtime for /pages should set two set-cookie headers", + "set-cookies for experimental-edge runtime for /app should set two set-cookie headers", + "set-cookies for node runtime for /pages should set two set-cookie headers", + "set-cookies for node runtime for /app should set two set-cookie headers" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/third-parties/basic.test.ts": { + "passed": [ + "@next/third-parties basic usage renders YoutubeEmbed", + "@next/third-parties basic usage renders GoogleMapsEmbed" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/underscore-ignore-app-paths/underscore-ignore-app-paths.test.ts": { + "passed": [ + "underscore-ignore-app-paths should not serve app path with underscore", + "underscore-ignore-app-paths should serve pages path with underscore" + ], + "failed": ["underscore-ignore-app-paths should serve app path with %5F"], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/similar-pages-paths/similar-pages-paths.test.ts": { + "passed": [ + "app-dir similar pages paths should not have conflicts for similar pattern page paths between app and pages" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/test-template/{{ toFileName name }}/{{ toFileName name }}.test.ts": { + "passed": [ + "{{name}} should work using cheerio", + "{{name}} should work using browser", + "{{name}} should work with html", + "{{name}} should work with fetch" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/trailingslash/trailingslash.test.ts": { + "passed": [ + "app-dir trailingSlash handling should redirect route when requesting it directly", + "app-dir trailingSlash handling should redirect route when requesting it directly by browser", + "app-dir trailingSlash handling should redirect route when clicking link" + ], + "failed": [ + "app-dir trailingSlash handling should render link with trailing slash" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/with-exported-function-config/with-exported-function-config.test.ts": { + "passed": [], + "failed": [ + "with-exported-function-config should have correct values in function config manifest" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/browserslist-extends/index.test.ts": { + "passed": ["browserslist-extends should work"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/use-params/use-params.test.ts": { + "passed": [ + "use-params should work for single dynamic param", + "use-params should work for nested dynamic params", + "use-params should work for catch all params", + "use-params should work for single dynamic param client navigating", + "use-params should work for nested dynamic params client navigating" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/browserslist/browserslist.test.ts": { + "passed": [], + "failed": ["Browserslist should apply browserslist target"], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/use-selected-layout-segment-s/use-selected-layout-segment-s.test.ts": { + "passed": [ + "useSelectedLayoutSegment(s) should return correct values for root layout", + "useSelectedLayoutSegment(s) should return correct values in layout before static segment", + "useSelectedLayoutSegment(s) should return correct values in layout before param segment", + "useSelectedLayoutSegment(s) should return correct values in layout before catchall segment", + "useSelectedLayoutSegment(s) should return correct values in layout after last segment", + "useSelectedLayoutSegment(s) should correctly update when changing static segment", + "useSelectedLayoutSegment(s) should correctly update when changing param segment", + "useSelectedLayoutSegment(s) should correctly update when changing catchall segment" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/config-promise-export/async-function.test.ts": { + "passed": ["async export should work"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/children-page/index.test.ts": { + "passed": [ + "children-page with app dir should show the content if you have a page named children", + "children-page with pages dir should show the content if you have a page named children" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/cancel-request/stream-cancel.test.ts": { + "passed": [], + "failed": [ + "streaming responses cancel inner stream after disconnect node app route handler cancels stream making progress", + "streaming responses cancel inner stream after disconnect node app route handler cancels stalled stream", + "streaming responses cancel inner stream after disconnect node pages api cancels stream making progress", + "streaming responses cancel inner stream after disconnect node pages api cancels stalled stream", + "streaming responses cancel inner stream after disconnect node pages api cancels stream that never sent data", + "streaming responses cancel inner stream after disconnect middleware cancels stream making progress", + "streaming responses cancel inner stream after disconnect middleware cancels stalled stream", + "streaming responses cancel inner stream after disconnect middleware cancels stream that never sent data", + "streaming responses cancel inner stream after disconnect edge app route handler cancels stream making progress", + "streaming responses cancel inner stream after disconnect edge app route handler cancels stalled stream", + "streaming responses cancel inner stream after disconnect edge app route handler cancels stream that never sent data", + "streaming responses cancel inner stream after disconnect node app route handler cancels stream that never sent data", + "streaming responses cancel inner stream after disconnect edge pages api cancels stream making progress", + "streaming responses cancel inner stream after disconnect edge pages api cancels stalled stream", + "streaming responses cancel inner stream after disconnect edge pages api cancels stream that never sent data" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/config-promise-export/promise.test.ts": { + "passed": ["promise export should work"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/custom-app-render/custom-app-render.test.ts": { + "passed": [], + "failed": [ + "custom-app-render should render /", + "custom-app-render should render /render" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/disable-js-preload/test/index.test.js": { + "passed": [ + "disabled JS preloads should render the page", + "disabled JS preloads should not have JS preload links" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/dynamic-route-interpolation/index.test.ts": { + "passed": [ + "Dynamic Route Interpolation should work", + "Dynamic Route Interpolation should work with parameter itself", + "Dynamic Route Interpolation should work with brackets", + "Dynamic Route Interpolation should work with parameter itself in API routes", + "Dynamic Route Interpolation should work with brackets in API routes", + "Dynamic Route Interpolation should bust data cache", + "Dynamic Route Interpolation should bust data cache with symbol" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/edge-api-endpoints-can-receive-body/index.test.ts": { + "passed": [], + "failed": [ + "Edge API endpoints can receive body reads the body as text", + "Edge API endpoints can receive body reads the body from index" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/edge-async-local-storage/index.test.ts": { + "passed": [], + "failed": [ + "edge api can use async local storage cans use a single instance per request", + "edge api can use async local storage cans use multiple instances per request" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/edge-can-read-request-body/index.test.ts": { + "passed": [ + "Edge can read request body renders the static page", + "Edge can read request body middleware reads a text body" + ], + "failed": [ + "Edge can read request body middleware reads a JSON body", + "Edge can read request body middleware reads an URL encoded form data", + "Edge can read request body middleware reads a multipart form data" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/basepath-trailing-slash.test.ts": { + "passed": [ + "basePath + trailingSlash should allow URL query strings on index without refresh" + ], + "failed": [ + "basePath + trailingSlash should allow URL query strings without refresh", + "basePath + trailingSlash should correctly replace state when same asPath but different url" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/edge-compiler-can-import-blob-assets/index.test.ts": { + "passed": [], + "failed": [ + "Edge Compiler can import asset assets allows to fetch image assets", + "Edge Compiler can import asset assets extracts all the assets from the bundle", + "Edge Compiler can import asset assets allows to fetch a remote URL", + "Edge Compiler can import asset assets allows to fetch a remote URL with a path and basename", + "Edge Compiler can import asset assets allows to fetch text assets", + "Edge Compiler can import asset assets allows to assets from node_modules" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/edge-compiler-module-exports-preference/index.test.ts": { + "passed": [], + "failed": [ + "Edge compiler module exports preference favors the browser export" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/edge-can-use-wasm-files/index.test.ts": { + "passed": [], + "failed": [ + "edge api endpoints can use wasm files uses the wasm file", + "middleware can use wasm files uses the wasm file", + "middleware can use wasm files can be called twice", + "middleware can use wasm files lists the necessary wasm bindings in the manifest", + "middleware can use wasm files with the experimental modes on uses the wasm file" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/edge-pages-support/edge-document.test.ts": { + "passed": [], + "failed": [ + "edge render - custom _document with edge runtime should render page properly" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/edge-pages-support/index.test.ts": { + "passed": [], + "failed": [ + "edge-render-getserversideprops should have correct query/params on index", + "edge-render-getserversideprops should have correct query/params on /[id]", + "edge-render-getserversideprops should have correct query/params on rewrite", + "edge-render-getserversideprops should have correct query/params on dynamic rewrite", + "edge-render-getserversideprops should respond to _next/data for index correctly", + "edge-render-getserversideprops should respond to _next/data for [id] correctly", + "edge-render-getserversideprops should not output trace files for edge routes", + "edge-render-getserversideprops should have correct query for pages/api", + "edge-render-getserversideprops should have correct query for pages/api dynamic", + "edge-render-getserversideprops should have data routes in routes-manifest" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/edge-configurable-runtime/index.test.ts": { + "passed": [ + "Configurable runtime for src/pages and API routes In dev mode runs with no warning API route on the edge runtime", + "Configurable runtime for pages and API routes In dev mode runs with no warning API route on the edge runtime" + ], + "failed": [ + "Configurable runtime for src/pages and API routes In dev mode warns about API route using experimental-edge runtime", + "Configurable runtime for src/pages and API routes In dev mode warns about page using edge runtime", + "Configurable runtime for src/pages and API routes In dev mode errors about page using edge runtime", + "Configurable runtime for pages and API routes In dev mode warns about API route using experimental-edge runtime", + "Configurable runtime for pages and API routes In dev mode warns about page using edge runtime", + "Configurable runtime for pages and API routes In dev mode errors about page using edge runtime", + "Configurable runtime for src/pages and API routes In start mode builds with API route on the edge runtime and page on the experimental edge runtime", + "Configurable runtime for src/pages and API routes In start mode does not build with page on the edge runtime", + "Configurable runtime for pages and API routes In start mode builds with API route on the edge runtime and page on the experimental edge runtime", + "Configurable runtime for pages and API routes In start mode does not build with page on the edge runtime" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/favicon-short-circuit/favicon-short-circuit.test.ts": { + "passed": [ + "favicon-short-circuit should short circuit the favicon in development" + ], + "failed": [ + "favicon-short-circuit should not short circuit the favicon in production" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/edge-runtime-uses-edge-light-import-specifier-for-packages/edge-runtime-uses-edge-light-import-specifier-for-packages.test.ts": { + "passed": [], + "failed": [ + "edge-runtime uses edge-light import specifier for packages pages/api endpoints import the correct module", + "edge-runtime uses edge-light import specifier for packages pages import the correct module", + "edge-runtime uses edge-light import specifier for packages app-dir imports the correct module" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/conflicting-app-page-error/index.test.ts": { + "passed": [ + "Conflict between app file and pages file should not show error overlay for non conflict pages under app or pages dir", + "Conflict between app file and pages file should print error for conflicting app/page" + ], + "failed": [ + "Conflict between app file and pages file should show error overlay for /another", + "Conflict between app file and pages file should show error overlay for /", + "Conflict between app file and pages file should support hmr with conflicts", + "Conflict between app file and pages file should error again when there is new conflict" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/getserversideprops/test/index.test.ts": { + "passed": [ + "getServerSideProps should work with early request ending", + "getServerSideProps should allow POST request for getServerSideProps page", + "getServerSideProps should render correctly when notFound is false (non-dynamic)", + "getServerSideProps should render 404 correctly when notFound is returned (non-dynamic)", + "getServerSideProps should render correctly when notFound is false (dynamic)", + "getServerSideProps should render 404 correctly when notFound is returned (dynamic)", + "getServerSideProps should SSR normal page correctly", + "getServerSideProps should SSR getServerSideProps page correctly", + "getServerSideProps should handle throw ENOENT correctly", + "getServerSideProps should have gssp in __NEXT_DATA__", + "getServerSideProps should not have gssp in __NEXT_DATA__ for non-GSSP page", + "getServerSideProps should supply query values SSR", + "getServerSideProps should supply params values for catchall correctly", + "getServerSideProps should have original req.url for /_next/data request dynamic page", + "getServerSideProps should have original req.url for /_next/data request dynamic page with query", + "getServerSideProps should have original req.url for /_next/data request", + "getServerSideProps should have original req.url for /_next/data request with query", + "getServerSideProps should have correct req.url and query for direct visit dynamic page", + "getServerSideProps should have correct req.url and query for direct visit dynamic page rewrite direct", + "getServerSideProps should have correct req.url and query for direct visit dynamic page rewrite direct with internal query", + "getServerSideProps should have correct req.url and query for direct visit dynamic page rewrite param", + "getServerSideProps should have correct req.url and query for direct visit dynamic page with query", + "getServerSideProps should have correct req.url and query for direct visit", + "getServerSideProps should return data correctly", + "getServerSideProps should pass query for data request", + "getServerSideProps should return data correctly for dynamic page", + "getServerSideProps should return data correctly when props is a promise", + "getServerSideProps should navigate to a normal page and back", + "getServerSideProps should load a fast refresh page", + "getServerSideProps should provide correct query value for dynamic page", + "getServerSideProps should parse query values on mount correctly", + "getServerSideProps should reload page on failed data request", + "getServerSideProps should always call getServerSideProps without caching", + "getServerSideProps should not re-call getServerSideProps when updating query", + "getServerSideProps should not show warning from url prop being returned", + "getServerSideProps should show error for extra keys returned from getServerSideProps", + "getServerSideProps should show error for invalid JSON returned from getServerSideProps", + "getServerSideProps should show error for invalid JSON returned from getStaticProps on CST", + "getServerSideProps should show error for accessing res after gssp returns", + "getServerSideProps should show error for accessing res through props promise after gssp returns", + "getServerSideProps should only warn for accessing res if not streaming", + "getServerSideProps should not fetch data on mount", + "getServerSideProps should output routes-manifest correctly", + "getServerSideProps should set default caching header", + "getServerSideProps should respect custom caching header", + "getServerSideProps should not show error for invalid JSON returned from getServerSideProps", + "getServerSideProps should not show error for invalid JSON returned from getStaticProps on CST", + "getServerSideProps should not show error for accessing res after gssp returns", + "getServerSideProps should not warn for accessing res after gssp returns" + ], + "failed": [ + "getServerSideProps should dedupe server data requests", + "getServerSideProps should navigate between pages successfully", + "getServerSideProps should render 404 correctly when notFound is returned client-transition (non-dynamic)", + "getServerSideProps should render 404 correctly when notFound is returned client-transition (dynamic)", + "getServerSideProps should pass query for data request on navigation" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/handle-non-hoisted-swc-helpers/index.test.ts": { + "passed": ["handle-non-hoisted-swc-helpers should work"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/fetch-failures-have-good-stack-traces-in-edge-runtime/fetch-failures-have-good-stack-traces-in-edge-runtime.test.ts": { + "passed": [], + "failed": [ + "fetch failures have good stack traces in edge runtime when awaiting `fetch` using an unknown domain, stack traces are preserved", + "fetch failures have good stack traces in edge runtime when returning `fetch` using an unknown domain, stack traces are preserved" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/i18n-api-support/index.test.ts": { + "passed": [ + "i18n API support should respond to normal API request", + "i18n API support should respond to normal dynamic API request", + "i18n API support should fallback rewrite non-matching API request" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/hello-world/hello-world.test.ts": { + "passed": [ + "hello-world should work using cheerio", + "hello-world should work using browser", + "hello-world should work with html", + "hello-world should work with fetch" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/i18n-data-route/i18n-data-route.test.ts": { + "passed": [ + "i18n-data-route with locale prefix /en-CA should render /about via /en-CA/about", + "i18n-data-route with locale prefix /en-CA should render /[slug]/about via /en-CA/blog/about", + "i18n-data-route with locale prefix /en-CA should serve data for /about", + "i18n-data-route with locale prefix /en-CA should serve data for /[slug]/about", + "i18n-data-route with locale prefix /fr-CA should render /about via /fr-CA/about", + "i18n-data-route with locale prefix /fr-CA should render /[slug]/about via /fr-CA/blog/about", + "i18n-data-route with locale prefix /fr-CA should serve data for /about", + "i18n-data-route with locale prefix /fr-CA should serve data for /[slug]/about", + "i18n-data-route without locale prefix should render /about via /about", + "i18n-data-route without locale prefix should render /[slug]/about via /blog/about", + "i18n-data-route without locale prefix should serve data for /about", + "i18n-data-route without locale prefix should serve data for /[slug]/about" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/i18n-disallow-multiple-locales/i18n-disallow-multiple-locales.test.ts": { + "passed": [ + "i18n-disallow-multiple-locales should verify the default locale works", + "i18n-disallow-multiple-locales /en-US should 200", + "i18n-disallow-multiple-locales /en should 200", + "i18n-disallow-multiple-locales /nl-NL should 200", + "i18n-disallow-multiple-locales /nl-BE should 200", + "i18n-disallow-multiple-locales /nl should 200", + "i18n-disallow-multiple-locales /fr-BE should 200", + "i18n-disallow-multiple-locales /fr should 200", + "i18n-disallow-multiple-locales /en-US/en-US should 404", + "i18n-disallow-multiple-locales /en-US/en should 404", + "i18n-disallow-multiple-locales /en-US/nl-NL should 404", + "i18n-disallow-multiple-locales /en-US/nl-BE should 404", + "i18n-disallow-multiple-locales /en-US/nl should 404", + "i18n-disallow-multiple-locales /en-US/fr-BE should 404", + "i18n-disallow-multiple-locales /en-US/fr should 404", + "i18n-disallow-multiple-locales /en/en-US should 404", + "i18n-disallow-multiple-locales /en/en should 404", + "i18n-disallow-multiple-locales /en/nl-NL should 404", + "i18n-disallow-multiple-locales /en/nl-BE should 404", + "i18n-disallow-multiple-locales /en/nl should 404", + "i18n-disallow-multiple-locales /en/fr-BE should 404", + "i18n-disallow-multiple-locales /en/fr should 404", + "i18n-disallow-multiple-locales /nl-NL/en-US should 404", + "i18n-disallow-multiple-locales /nl-NL/en should 404", + "i18n-disallow-multiple-locales /nl-NL/nl-NL should 404", + "i18n-disallow-multiple-locales /nl-NL/nl-BE should 404", + "i18n-disallow-multiple-locales /nl-NL/nl should 404", + "i18n-disallow-multiple-locales /nl-NL/fr-BE should 404", + "i18n-disallow-multiple-locales /nl-NL/fr should 404", + "i18n-disallow-multiple-locales /nl-BE/en-US should 404", + "i18n-disallow-multiple-locales /nl-BE/en should 404", + "i18n-disallow-multiple-locales /nl-BE/nl-NL should 404", + "i18n-disallow-multiple-locales /nl-BE/nl-BE should 404", + "i18n-disallow-multiple-locales /nl-BE/nl should 404", + "i18n-disallow-multiple-locales /nl-BE/fr-BE should 404", + "i18n-disallow-multiple-locales /nl-BE/fr should 404", + "i18n-disallow-multiple-locales /nl/en-US should 404", + "i18n-disallow-multiple-locales /nl/en should 404", + "i18n-disallow-multiple-locales /nl/nl-NL should 404", + "i18n-disallow-multiple-locales /nl/nl-BE should 404", + "i18n-disallow-multiple-locales /nl/nl should 404", + "i18n-disallow-multiple-locales /nl/fr-BE should 404", + "i18n-disallow-multiple-locales /nl/fr should 404", + "i18n-disallow-multiple-locales /fr-BE/en-US should 404", + "i18n-disallow-multiple-locales /fr-BE/en should 404", + "i18n-disallow-multiple-locales /fr-BE/nl-NL should 404", + "i18n-disallow-multiple-locales /fr-BE/nl-BE should 404", + "i18n-disallow-multiple-locales /fr-BE/nl should 404", + "i18n-disallow-multiple-locales /fr-BE/fr-BE should 404", + "i18n-disallow-multiple-locales /fr-BE/fr should 404", + "i18n-disallow-multiple-locales /fr/en-US should 404", + "i18n-disallow-multiple-locales /fr/en should 404", + "i18n-disallow-multiple-locales /fr/nl-NL should 404", + "i18n-disallow-multiple-locales /fr/nl-BE should 404", + "i18n-disallow-multiple-locales /fr/nl should 404", + "i18n-disallow-multiple-locales /fr/fr-BE should 404", + "i18n-disallow-multiple-locales /fr/fr should 404" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/i18n-data-fetching-redirect/index.test.ts": { + "passed": [], + "failed": [ + "i18n-data-fetching-redirect Redirect to another locale gssp-redirect en -> sv", + "i18n-data-fetching-redirect Redirect to another locale gssp-redirect sv -> en", + "i18n-data-fetching-redirect Redirect to another locale gsp-blocking-redirect en -> sv", + "i18n-data-fetching-redirect Redirect to another locale gsp-blocking-redirect sv -> en", + "i18n-data-fetching-redirect Redirect to another locale gsp-fallback-redirect en -> sv", + "i18n-data-fetching-redirect Redirect to another locale gsp-fallback-redirect sv -> en", + "i18n-data-fetching-redirect Redirect to another locale next/link gssp-redirect en -> sv", + "i18n-data-fetching-redirect Redirect to another locale next/link gssp-redirect sv -> en", + "i18n-data-fetching-redirect Redirect to another locale next/link gsp-blocking-redirect en -> sv", + "i18n-data-fetching-redirect Redirect to another locale next/link gsp-blocking-redirect sv -> en", + "i18n-data-fetching-redirect Redirect to another locale next/link gsp-fallback-redirect en -> sv", + "i18n-data-fetching-redirect Redirect to another locale next/link gsp-fallback-redirect sv -> en", + "i18n-data-fetching-redirect Redirect to locale from context gssp-redirect en", + "i18n-data-fetching-redirect Redirect to locale from context gssp-redirect sv", + "i18n-data-fetching-redirect Redirect to locale from context gsp-blocking-redirect en", + "i18n-data-fetching-redirect Redirect to locale from context gsp-blocking-redirect sv", + "i18n-data-fetching-redirect Redirect to locale from context gsp-fallback-redirect en", + "i18n-data-fetching-redirect Redirect to locale from context gsp-fallback-redirect sv", + "i18n-data-fetching-redirect Redirect to locale from context next/link gssp-redirect en", + "i18n-data-fetching-redirect Redirect to locale from context next/link gssp-redirect sv", + "i18n-data-fetching-redirect Redirect to locale from context next/link gsp-blocking-redirect en", + "i18n-data-fetching-redirect Redirect to locale from context next/link gsp-blocking-redirect sv", + "i18n-data-fetching-redirect Redirect to locale from context next/link gsp-fallback-redirect en", + "i18n-data-fetching-redirect Redirect to locale from context next/link gsp-fallback-redirect sv" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/app-dir/with-babel/with-babel.test.ts": { + "passed": [], + "failed": [ + "with babel should support babel in app dir", + "with babel should contain og package files in middleware" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/i18n-ignore-rewrite-source-locale/rewrites-with-basepath.test.ts": { + "passed": [ + "i18n-ignore-rewrite-source-locale with basepath get public file by skipping locale in rewrite, locale: ", + "i18n-ignore-rewrite-source-locale with basepath get public file by skipping locale in rewrite, locale: /en", + "i18n-ignore-rewrite-source-locale with basepath get public file by skipping locale in rewrite, locale: /sv", + "i18n-ignore-rewrite-source-locale with basepath get public file by skipping locale in rewrite, locale: /nl", + "i18n-ignore-rewrite-source-locale with basepath call api by skipping locale in rewrite, locale: ", + "i18n-ignore-rewrite-source-locale with basepath call api by skipping locale in rewrite, locale: /en", + "i18n-ignore-rewrite-source-locale with basepath call api by skipping locale in rewrite, locale: /sv", + "i18n-ignore-rewrite-source-locale with basepath call api by skipping locale in rewrite, locale: /nl" + ], + "failed": [ + "i18n-ignore-rewrite-source-locale with basepath get _next/static/ files by skipping locale in rewrite, locale: ", + "i18n-ignore-rewrite-source-locale with basepath get _next/static/ files by skipping locale in rewrite, locale: /en", + "i18n-ignore-rewrite-source-locale with basepath get _next/static/ files by skipping locale in rewrite, locale: /sv", + "i18n-ignore-rewrite-source-locale with basepath get _next/static/ files by skipping locale in rewrite, locale: /nl" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/i18n-ignore-rewrite-source-locale/rewrites.test.ts": { + "passed": [ + "i18n-ignore-rewrite-source-locale get public file by skipping locale in rewrite, locale: ", + "i18n-ignore-rewrite-source-locale get public file by skipping locale in rewrite, locale: /en", + "i18n-ignore-rewrite-source-locale get public file by skipping locale in rewrite, locale: /sv", + "i18n-ignore-rewrite-source-locale get public file by skipping locale in rewrite, locale: /nl", + "i18n-ignore-rewrite-source-locale call api by skipping locale in rewrite, locale: ", + "i18n-ignore-rewrite-source-locale call api by skipping locale in rewrite, locale: /en", + "i18n-ignore-rewrite-source-locale call api by skipping locale in rewrite, locale: /sv", + "i18n-ignore-rewrite-source-locale call api by skipping locale in rewrite, locale: /nl" + ], + "failed": [ + "i18n-ignore-rewrite-source-locale get _next/static/ files by skipping locale in rewrite, locale: ", + "i18n-ignore-rewrite-source-locale get _next/static/ files by skipping locale in rewrite, locale: /en", + "i18n-ignore-rewrite-source-locale get _next/static/ files by skipping locale in rewrite, locale: /sv", + "i18n-ignore-rewrite-source-locale get _next/static/ files by skipping locale in rewrite, locale: /nl" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/ignore-invalid-popstateevent/with-i18n.test.ts": { + "passed": [], + "failed": [ + "i18n: Event with stale state - static route previously was dynamic Ignore event without query param", + "i18n: Event with stale state - static route previously was dynamic Ignore event with query param", + "i18n: Event with stale state - static route previously was dynamic Don't ignore event with different locale" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/ignore-invalid-popstateevent/without-i18n.test.ts": { + "passed": [], + "failed": [ + "Event with stale state - static route previously was dynamic Ignore event without query param", + "Event with stale state - static route previously was dynamic Ignore event with query param" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/config-schema-check/index.test.ts": { + "passed": [ + "next.config.js schema validating - defaultConfig should validate against defaultConfig" + ], + "failed": [ + "next.config.js schema validating - invalid config should warn the invalid next config" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/i18n-default-locale-redirect/i18n-default-locale-redirect.test.ts": { + "passed": [], + "failed": [ + "i18-default-locale-redirect should not request a path prefixed with default locale", + "i18-default-locale-redirect should request a path prefixed with non-default locale" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/link-with-api-rewrite/index.test.ts": { + "passed": [ + "link-with-api-rewrite should perform hard navigation for rewritten urls", + "link-with-api-rewrite should perform hard navigation for direct urls" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/i18n-ignore-redirect-source-locale/redirects-with-basepath.test.ts": { + "passed": [], + "failed": [ + "i18n-ignore-redirect-source-locale with basepath get redirected to the new page, from: to: sv", + "i18n-ignore-redirect-source-locale with basepath get redirected to the new page, from: /en to: sv", + "i18n-ignore-redirect-source-locale with basepath get redirected to the new page, from: /sv to: sv", + "i18n-ignore-redirect-source-locale with basepath get redirected to the new page, from: /nl to: sv", + "i18n-ignore-redirect-source-locale with basepath get redirected to the new page, from: to: en", + "i18n-ignore-redirect-source-locale with basepath get redirected to the new page, from: /en to: en", + "i18n-ignore-redirect-source-locale with basepath get redirected to the new page, from: /sv to: en", + "i18n-ignore-redirect-source-locale with basepath get redirected to the new page, from: /nl to: en", + "i18n-ignore-redirect-source-locale with basepath get redirected to the new page, from: to: /", + "i18n-ignore-redirect-source-locale with basepath get redirected to the new page, from: /en to: /", + "i18n-ignore-redirect-source-locale with basepath get redirected to the new page, from: /sv to: /", + "i18n-ignore-redirect-source-locale with basepath get redirected to the new page, from: /nl to: /", + "i18n-ignore-redirect-source-locale with basepath get redirected to the new page, from and to: ", + "i18n-ignore-redirect-source-locale with basepath get redirected to the new page, from and to: /en", + "i18n-ignore-redirect-source-locale with basepath get redirected to the new page, from and to: /sv", + "i18n-ignore-redirect-source-locale with basepath get redirected to the new page, from and to: /nl" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/middleware-base-path/test/index.test.ts": { + "passed": [], + "failed": [ + "Middleware base tests router.query must exist when Link clicked page routing", + "Middleware base tests should execute from absolute paths" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/middleware-custom-matchers-basepath/test/index.test.ts": { + "passed": ["Middleware custom matchers basePath should not match"], + "failed": [ + "Middleware custom matchers basePath should match has query on client routing", + "Middleware custom matchers basePath should match" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/middleware-custom-matchers-i18n/test/index.test.ts": { + "passed": [ + "Middleware custom matchers i18n should not match", + "Middleware custom matchers with root should not match" + ], + "failed": [ + "Middleware custom matchers i18n should match has query on client routing", + "Middleware custom matchers i18n should match" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/middleware-custom-matchers/test/index.test.ts": { + "passed": [ + "Middleware custom matchers should match missing header correctly", + "Middleware custom matchers should match missing query correctly" + ], + "failed": [ + "Middleware custom matchers should match source path", + "Middleware custom matchers should match has header", + "Middleware custom matchers should match has query", + "Middleware custom matchers should match has cookie", + "Middleware custom matchers should match has host", + "Middleware custom matchers should match has header value", + "Middleware custom matchers should match has query on client routing", + "Middleware custom matchers should match has cookie on client routing" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/middleware-dynamic-basepath-matcher/test/index.test.ts": { + "passed": [ + "Middleware custom matchers basePath should match", + "Middleware custom matchers basePath should not match" + ], + "failed": ["Middleware custom matchers basePath should match query path"], + "pending": [], + "runtimeError": false + }, + "test/e2e/middleware-fetches-with-any-http-method/index.test.ts": { + "passed": [], + "failed": [ + "Middleware fetches with any HTTP method passes the method on a direct fetch request", + "Middleware fetches with any HTTP method passes the method when providing a Request object" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/middleware-fetches-with-body/index.test.ts": { + "passed": [ + "Middleware fetches with body with default bodyParser sizeLimit (1mb) should return 413 for body greater than 1mb", + "Middleware fetches with body with default bodyParser sizeLimit (1mb) should be able to send and return body size equal to 1mb", + "Middleware fetches with body with default bodyParser sizeLimit (1mb) should be able to send and return body greater than default highWaterMark (16KiB)", + "Middleware fetches with body with custom bodyParser sizeLimit (5kb) should return 413 for body greater than 5kb", + "Middleware fetches with body with custom bodyParser sizeLimit (5kb) should be able to send and return body size equal to 5kb", + "Middleware fetches with body with custom bodyParser sizeLimit (5mb) should return 413 for body greater than 5mb", + "Middleware fetches with body with custom bodyParser sizeLimit (5mb) should be able to send and return body size equal to 5mb", + "Middleware fetches with body with bodyParser = false should be able to send and return with body size equal to 16KiB", + "Middleware fetches with body with bodyParser = false should be able to send and return with body greater than 16KiB", + "Middleware fetches with body should return 413 for body equal to 10mb" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/i18n-ignore-redirect-source-locale/redirects.test.ts": { + "passed": [], + "failed": [ + "i18n-ignore-redirect-source-locale get redirected to the new page, from: to: sv", + "i18n-ignore-redirect-source-locale get redirected to the new page, from: /en to: sv", + "i18n-ignore-redirect-source-locale get redirected to the new page, from: /sv to: sv", + "i18n-ignore-redirect-source-locale get redirected to the new page, from: /nl to: sv", + "i18n-ignore-redirect-source-locale get redirected to the new page, from: to: en", + "i18n-ignore-redirect-source-locale get redirected to the new page, from: /en to: en", + "i18n-ignore-redirect-source-locale get redirected to the new page, from: /sv to: en", + "i18n-ignore-redirect-source-locale get redirected to the new page, from: /nl to: en", + "i18n-ignore-redirect-source-locale get redirected to the new page, from: to: /", + "i18n-ignore-redirect-source-locale get redirected to the new page, from: /en to: /", + "i18n-ignore-redirect-source-locale get redirected to the new page, from: /sv to: /", + "i18n-ignore-redirect-source-locale get redirected to the new page, from: /nl to: /", + "i18n-ignore-redirect-source-locale get redirected to the new page, from and to: ", + "i18n-ignore-redirect-source-locale get redirected to the new page, from and to: /en", + "i18n-ignore-redirect-source-locale get redirected to the new page, from and to: /sv", + "i18n-ignore-redirect-source-locale get redirected to the new page, from and to: /nl" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/instrumentation-hook-src/instrumentation-hook-src.test.ts": { + "passed": [], + "failed": [ + "instrumentation-hook-src should run the instrumentation hook", + "instrumentation-hook-src should not overlap with a instrumentation page", + "instrumentation-hook-src should run the edge instrumentation compiled version with the edge runtime" + ], + "pending": [ + "instrumentation-hook-src should reload the server when the instrumentation hook changes" + ], + "runtimeError": true + }, + "test/e2e/middleware-general/test/index.test.ts": { + "passed": [ + "Middleware Runtime with i18n should have correct files in manifest", + "Middleware Runtime with i18n should not run middleware for on-demand revalidate", + "Middleware Runtime without i18n should have correct files in manifest", + "Middleware Runtime without i18n should not run middleware for on-demand revalidate" + ], + "failed": [ + "Middleware Runtime with i18n should work with notFound: true correctly", + "Middleware Runtime with i18n should be able to rewrite on _next/static/chunks/pages/ 404", + "Middleware Runtime with i18n refreshes the page when middleware changes ", + "Middleware Runtime with i18n should only contain middleware route in dev middleware manifest", + "Middleware Runtime with i18n passes search params with rewrites", + "Middleware Runtime with i18n should have init header for NextResponse.redirect", + "Middleware Runtime with i18n should have correct query values for rewrite to ssg page", + "Middleware Runtime with i18n should have correct dynamic route params on client-transition to dynamic route", + "Middleware Runtime with i18n should have correct dynamic route params for middleware rewrite to dynamic route", + "Middleware Runtime with i18n should have correct route params for chained rewrite from middleware to config rewrite", + "Middleware Runtime with i18n should have correct route params for rewrite from config dynamic route", + "Middleware Runtime with i18n should have correct route params for rewrite from config non-dynamic route", + "Middleware Runtime with i18n should redirect the same for direct visit and client-transition", + "Middleware Runtime with i18n should rewrite the same for direct visit and client-transition", + "Middleware Runtime with i18n should rewrite correctly for non-SSG/SSP page", + "Middleware Runtime with i18n should respond with 400 on decode failure", + "Middleware Runtime with i18n should set fetch user agent correctly", + "Middleware Runtime with i18n allows to access env variables", + "Middleware Runtime with i18n should contain `globalThis`", + "Middleware Runtime with i18n should contain crypto APIs", + "Middleware Runtime with i18n should accept a URL instance for fetch", + "Middleware Runtime with i18n should allow to abort a fetch request", + "Middleware Runtime with i18n should validate & parse request url from any route", + "Middleware Runtime with i18n should validate & parse request url from a dynamic route with params", + "Middleware Runtime with i18n should validate & parse request url from a dynamic route with params and no query", + "Middleware Runtime with i18n should validate & parse request url from a dynamic route with params and query", + "Middleware Runtime with i18n should throw when using URL with a relative URL", + "Middleware Runtime with i18n should throw when using NextRequest with a relative URL", + "Middleware Runtime with i18n should throw when using Request with a relative URL", + "Middleware Runtime with i18n should warn when using Response.redirect with a relative URL", + "Middleware Runtime with i18n should warn when using NextResponse.redirect with a relative URL", + "Middleware Runtime with i18n should throw when using NextResponse.rewrite with a relative URL", + "Middleware Runtime with i18n should trigger middleware for data requests", + "Middleware Runtime with i18n should normalize data requests into page requests", + "Middleware Runtime with i18n should keep non data requests in their original shape", + "Middleware Runtime with i18n should add a rewrite header on data requests for rewrites", + "Middleware Runtime with i18n hard-navigates when the data request failed", + "Middleware Runtime with i18n allows shallow linking with middleware", + "Middleware Runtime without i18n should work with notFound: true correctly", + "Middleware Runtime without i18n should be able to rewrite on _next/static/chunks/pages/ 404", + "Middleware Runtime without i18n refreshes the page when middleware changes ", + "Middleware Runtime without i18n should only contain middleware route in dev middleware manifest", + "Middleware Runtime without i18n passes search params with rewrites", + "Middleware Runtime without i18n should have init header for NextResponse.redirect", + "Middleware Runtime without i18n should have correct query values for rewrite to ssg page", + "Middleware Runtime without i18n should have correct dynamic route params on client-transition to dynamic route", + "Middleware Runtime without i18n should have correct dynamic route params for middleware rewrite to dynamic route", + "Middleware Runtime without i18n should have correct route params for chained rewrite from middleware to config rewrite", + "Middleware Runtime without i18n should have correct route params for rewrite from config dynamic route", + "Middleware Runtime without i18n should have correct route params for rewrite from config non-dynamic route", + "Middleware Runtime without i18n should redirect the same for direct visit and client-transition", + "Middleware Runtime without i18n should rewrite the same for direct visit and client-transition", + "Middleware Runtime without i18n should rewrite correctly for non-SSG/SSP page", + "Middleware Runtime without i18n should respond with 400 on decode failure", + "Middleware Runtime without i18n should set fetch user agent correctly", + "Middleware Runtime without i18n allows to access env variables", + "Middleware Runtime without i18n should contain `globalThis`", + "Middleware Runtime without i18n should contain crypto APIs", + "Middleware Runtime without i18n should accept a URL instance for fetch", + "Middleware Runtime without i18n should allow to abort a fetch request", + "Middleware Runtime without i18n should validate & parse request url from any route", + "Middleware Runtime without i18n should validate & parse request url from a dynamic route with params and query", + "Middleware Runtime without i18n should throw when using URL with a relative URL", + "Middleware Runtime without i18n should throw when using NextRequest with a relative URL", + "Middleware Runtime without i18n should throw when using Request with a relative URL", + "Middleware Runtime without i18n should warn when using Response.redirect with a relative URL", + "Middleware Runtime without i18n should warn when using NextResponse.redirect with a relative URL", + "Middleware Runtime without i18n should throw when using NextResponse.rewrite with a relative URL", + "Middleware Runtime without i18n should trigger middleware for data requests", + "Middleware Runtime without i18n should normalize data requests into page requests", + "Middleware Runtime without i18n should keep non data requests in their original shape", + "Middleware Runtime without i18n should add a rewrite header on data requests for rewrites", + "Middleware Runtime without i18n hard-navigates when the data request failed", + "Middleware Runtime without i18n allows shallow linking with middleware", + "Middleware Runtime with i18n should have valid middleware field in manifest", + "Middleware Runtime with i18n should have the custom config in the manifest", + "Middleware Runtime without i18n should have valid middleware field in manifest", + "Middleware Runtime without i18n should have the custom config in the manifest" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/middleware-request-header-overrides/test/index.test.ts": { + "passed": [], + "failed": [ + "Middleware Request Headers Overrides Serverless Functions Backend Adds new headers", + "Middleware Request Headers Overrides Serverless Functions Backend Deletes headers", + "Middleware Request Headers Overrides Serverless Functions Backend Updates headers", + "Middleware Request Headers Overrides Edge Functions Backend Adds new headers", + "Middleware Request Headers Overrides Edge Functions Backend Deletes headers", + "Middleware Request Headers Overrides Edge Functions Backend Updates headers", + "Middleware Request Headers Overrides getServerSideProps Backend Adds new headers", + "Middleware Request Headers Overrides getServerSideProps Backend Deletes headers", + "Middleware Request Headers Overrides getServerSideProps Backend Updates headers" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/manual-client-base-path/index.test.ts": { + "passed": [], + "failed": [ + "manual-client-base-path should not warn for flag in output", + "manual-client-base-path should not update with basePath on mount /", + "manual-client-base-path should not update with basePath on mount /another", + "manual-client-base-path should not update with basePath on mount /dynamic/first", + "manual-client-base-path should not update with basePath on mount /dynamic/second", + "manual-client-base-path should navigate correctly from index", + "manual-client-base-path should navigate correctly from another" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/middleware-responses/test/index.test.ts": { + "passed": [], + "failed": [ + "Middleware Responses responds with multiple cookies", + "Middleware Responses should not fail when returning a stream", + "Middleware Responses should not fail when returning a text body", + "Middleware Responses should respond with a 401 status code", + "Middleware Responses should respond with one header", + "Middleware Responses should respond with two headers", + "Middleware Responses should respond appending headers headers", + "Middleware Responses /fr responds with multiple cookies", + "Middleware Responses /fr should not fail when returning a stream", + "Middleware Responses /fr should not fail when returning a text body", + "Middleware Responses /fr should respond with a 401 status code", + "Middleware Responses /fr should respond with one header", + "Middleware Responses /fr should respond with two headers", + "Middleware Responses /fr should respond appending headers headers" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/middleware-shallow-link/index.test.ts": { + "passed": ["browser-shallow-navigation should render the correct page"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/middleware-trailing-slash/test/index.test.ts": { + "passed": [ + "Middleware Runtime trailing slash with .html extension should work when requesting the page directly", + "Middleware Runtime trailing slash with .html extension should work using browser", + "Middleware Runtime trailing slash with .html extension should work when navigating", + "Middleware Runtime trailing slash without .html extension should work when requesting the page directly", + "Middleware Runtime trailing slash without .html extension should work using browser", + "Middleware Runtime trailing slash without .html extension should work when navigating", + "Middleware Runtime trailing slash should redirect the same for direct visit and client-transition", + "Middleware Runtime trailing slash should rewrite correctly for non-SSG/SSP page", + "Middleware Runtime trailing slash should respond with 400 on decode failure", + "Middleware Runtime trailing slash should have correct files in manifest", + "Middleware Runtime trailing slash should not run middleware for on-demand revalidate" + ], + "failed": [ + "Middleware Runtime trailing slash refreshes the page when middleware changes ", + "Middleware Runtime trailing slash should have correct query values for rewrite to ssg page", + "Middleware Runtime trailing slash should have correct dynamic route params on client-transition to dynamic route", + "Middleware Runtime trailing slash should have correct dynamic route params for middleware rewrite to dynamic route", + "Middleware Runtime trailing slash should have correct route params for chained rewrite from middleware to config rewrite", + "Middleware Runtime trailing slash should have correct route params for rewrite from config dynamic route", + "Middleware Runtime trailing slash should have correct route params for rewrite from config non-dynamic route", + "Middleware Runtime trailing slash allows shallow linking with middleware", + "Middleware Runtime trailing slash should have valid middleware field in manifest", + "Middleware Runtime trailing slash should have init header for NextResponse.redirect", + "Middleware Runtime trailing slash should rewrite the same for direct visit and client-transition", + "Middleware Runtime trailing slash should validate & parse request url from any route", + "Middleware Runtime trailing slash should trigger middleware for data requests", + "Middleware Runtime trailing slash should normalize data requests into page requests", + "Middleware Runtime trailing slash should keep non data requests in their original shape", + "Middleware Runtime trailing slash should add a rewrite header on data requests for rewrites" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/module-layer/index.test.ts": { + "passed": [], + "failed": [ + "module layer no server-only in server targets should render routes marked with restriction marks without errors", + "module layer with server-only in server targets should render routes marked with restriction marks without errors", + "module layer no server-only in server targets should log the build info properly", + "module layer with server-only in server targets should log the build info properly" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/multi-zone/multi-zone.test.ts": { + "passed": [], + "failed": [ + "multi-zone should correctly respond for /first", + "multi-zone should correctly respond for /second", + "multi-zone should correctly respond for /first/blog/post-1", + "multi-zone should correctly respond for /second/blog/post-1", + "multi-zone should correctly respond for /second/another/post-1" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/new-link-behavior/child-a-tag-error.test.ts": { + "passed": [ + "New Link Behavior with child should throw error with child" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/new-link-behavior/index.test.ts": { + "passed": [ + "New Link Behavior should render link with ", + "New Link Behavior should navigate to /about", + "New Link Behavior should handle onclick", + "New Link Behavior should handle preventdefault", + "New Link Behavior should render link with id", + "New Link Behavior should render link with classname", + "New Link Behavior should render link with multiple children" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/new-link-behavior/material-ui.test.ts": { + "passed": [ + "New Link Behavior with material-ui should render MuiLink with " + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/new-link-behavior/stitches.test.ts": { + "passed": ["New Link Behavior with stitches should render "], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/new-link-behavior/typescript.test.ts": { + "passed": [ + "New Link Behavior should render link with ", + "New Link Behavior should apply ref on link" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/next-font/basepath.test.ts": { + "passed": [], + "failed": ["next/font/google basepath preload correct files"], + "pending": [], + "runtimeError": false + }, + "test/e2e/next-font/google-fetch-error.test.ts": { + "passed": [], + "failed": [ + "next/font/google fetch error should use a fallback font in dev", + "next/font/google fetch error should error when not in dev" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/next-font/index.test.ts": { + "passed": [ + "next/font app import values page with font", + "next/font app import values page with local fonts", + "next/font app import values Variable font without weight range", + "next/font app computed styles page with fonts", + "next/font app computed styles page using variables", + "next/font app computed styles page using fallback fonts", + "next/font app Fallback fontfaces local Indie flower", + "next/font app Fallback fontfaces local Fraunces", + "next/font app Fallback fontfaces local Roboto multiple weights and styles", + "next/font app Fallback fontfaces local Roboto multiple weights and styles - variable 1", + "next/font app Fallback fontfaces local Roboto multiple weights and styles - variable 2", + "next/font app-old import values page with font", + "next/font app-old import values page with local fonts", + "next/font app-old import values Variable font without weight range", + "next/font app-old computed styles page with fonts", + "next/font app-old computed styles page using variables", + "next/font app-old computed styles page using fallback fonts", + "next/font app-old Fallback fontfaces local Indie flower", + "next/font app-old Fallback fontfaces local Fraunces", + "next/font app-old Fallback fontfaces local Roboto multiple weights and styles", + "next/font app-old Fallback fontfaces local Roboto multiple weights and styles - variable 1", + "next/font app-old Fallback fontfaces local Roboto multiple weights and styles - variable 2" + ], + "failed": [ + "next/font app preload page with fonts", + "next/font app preload page without fonts", + "next/font app preload page with local fonts", + "next/font app preload google fonts with multiple weights/styles", + "next/font app preload font without preloadable subsets", + "next/font app preload font without size adjust", + "next/font app Fallback fontfaces google Indie flower", + "next/font app Fallback fontfaces google Fraunces", + "next/font app-old preload page with fonts", + "next/font app-old preload page without fonts", + "next/font app-old preload page with local fonts", + "next/font app-old preload google fonts with multiple weights/styles", + "next/font app-old preload font without preloadable subsets", + "next/font app-old preload font without size adjust", + "next/font app-old Fallback fontfaces google Indie flower", + "next/font app-old Fallback fontfaces google Fraunces" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/next-font/with-font-declarations-file.test.ts": { + "passed": [], + "failed": [ + "next/font/google with-font-declarations-file preload correct files at /inter", + "next/font/google with-font-declarations-file preload correct files at /roboto", + "next/font/google with-font-declarations-file preload correct files at /local-font" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/next-font/with-proxy.test.ts": { + "passed": [], + "failed": [ + "next/font/google with proxy should use a proxy agent when proxy environment variable is set" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/next-font/without-preloaded-fonts.test.ts": { + "passed": [ + "next/font/google without-preloaded-fonts without _app without fonts" + ], + "failed": [ + "next/font/google without-preloaded-fonts without _app without preload", + "next/font/google no preloads with _app without preload", + "next/font/google no preloads with _app without fonts" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/next-image-forward-ref/index.test.ts": { + "passed": [ + "next-image-forward-ref allows framer-motion to animate opacity" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/middleware-matcher/index.test.ts": { + "passed": [ + "Middleware can set the matcher in its config should navigate correctly with matchers", + "using a single matcher does not add the header for root request", + "using a single matcher does not add the header for root data request", + "using a single matcher does not add the header for an unmatched path" + ], + "failed": [ + "using a single matcher with i18n adds the header for a matched path", + "using a single matcher with i18n adds the header for a mathed root path with /index", + "using a single matcher with i18n adds the headers for a matched data path", + "using a single matcher with i18n does not add the header for an unmatched path", + "using a single matcher with i18n and trailingSlash adds the header for a matched path", + "using a single matcher with i18n and trailingSlash adds the header for a mathed root path with /index", + "using a single matcher with i18n and trailingSlash adds the headers for a matched data path", + "using a single matcher with i18n and trailingSlash does not add the header for an unmatched path", + "using a single matcher with i18n and basePath adds the header for a matched path", + "using a single matcher with i18n and basePath adds the header for a mathed root path with /index", + "using a single matcher with i18n and basePath adds the headers for a matched data path", + "using a single matcher with i18n and basePath does not add the header for an unmatched path", + "using a single matcher with i18n and basePath and trailingSlash adds the header for a matched path", + "using a single matcher with i18n and basePath and trailingSlash adds the header for a mathed root path with /index", + "using a single matcher with i18n and basePath and trailingSlash adds the headers for a matched data path", + "using a single matcher with i18n and basePath and trailingSlash does not add the header for an unmatched path", + "Middleware can set the matcher in its config does add the header for root request", + "Middleware can set the matcher in its config adds the header for a matched path", + "Middleware can set the matcher in its config adds the header for a matched data path (with header)", + "Middleware can set the matcher in its config adds the header for a matched data path (without header)", + "Middleware can set the matcher in its config adds the header for another matched path", + "Middleware can set the matcher in its config adds the header for another matched data path", + "Middleware can set the matcher in its config does add the header for root data request", + "Middleware can set the matcher in its config should load matches in client matchers correctly", + "using a single matcher adds the header for a matched path", + "using a single matcher adds the headers for a matched data path (with header)", + "using a single matcher adds the header for a matched data path (without header)", + "using root matcher adds the header to the /", + "using root matcher adds the header to the /index", + "using root matcher adds the header for a matched data path (with header)", + "using root matcher adds the header for a matched data path (without header)" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/middleware-redirects/test/index.test.ts": { + "passed": [], + "failed": [ + "Middleware Redirect should redirect correctly with redirect in next.config.js", + "Middleware Redirect does not include the locale in redirects by default", + "Middleware Redirect should redirect to data urls with data requests and internal redirects", + "Middleware Redirect should redirect to external urls with data requests and external redirects", + "Middleware Redirect should redirect", + "Middleware Redirect should implement internal redirects", + "Middleware Redirect should redirect cleanly with the original url param", + "Middleware Redirect should redirect multiple times", + "Middleware Redirect should redirect (infinite-loop)", + "Middleware Redirect should redirect to api route with locale", + "Middleware Redirect should redirect with a fragment", + "Middleware Redirect /fr should redirect", + "Middleware Redirect /fr should implement internal redirects", + "Middleware Redirect /fr should redirect cleanly with the original url param", + "Middleware Redirect /fr should redirect multiple times", + "Middleware Redirect /fr should redirect (infinite-loop)", + "Middleware Redirect /fr should redirect to api route with locale", + "Middleware Redirect /fr should redirect with a fragment" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/instrumentation-hook/instrumentation-hook.test.ts": { + "passed": [], + "failed": [ + "Instrumentation Hook with-middleware with-middleware should run the instrumentation hook", + "Instrumentation Hook with-edge-api with-edge-api should run the instrumentation hook", + "Instrumentation Hook with-edge-page with-edge-page should run the instrumentation hook", + "Instrumentation Hook with-node-api with-node-api should run the instrumentation hook", + "Instrumentation Hook with-node-page with-node-page should run the instrumentation hook", + "Instrumentation Hook with-async-node-page with-async-node-page should run the instrumentation hook", + "Instrumentation Hook with-async-edge-page with-async-edge-page should run the instrumentation hook", + "Instrumentation Hook general should not overlap with a instrumentation page" + ], + "pending": [ + "Instrumentation Hook general should reload the server when the instrumentation hook changes" + ], + "runtimeError": false + }, + "test/e2e/no-eslint-warn-with-no-eslint-config/index.test.ts": { + "passed": [ + "no-eslint-warn-with-no-eslint-config should render", + "no-eslint-warn-with-no-eslint-config should not have eslint warnings when no eslint config", + "no-eslint-warn-with-no-eslint-config should warn with empty eslintrc", + "no-eslint-warn-with-no-eslint-config should warn with empty eslint config in package.json", + "no-eslint-warn-with-no-eslint-config should not warn with eslint config in package.json" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/og-api/index.test.ts": { + "passed": [ + "og-api should throw error when returning a response object in pages/api in node runtime" + ], + "failed": [ + "og-api should work in pages/api", + "og-api should work in app route", + "og-api should respond from index", + "og-api should work in app route in node runtime", + "og-api should copy files correctly" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/optimized-loading/test/index.test.ts": { + "passed": [ + "Optimized loading page / should render the page /", + "Optimized loading page / should not have JS preload links", + "Optimized loading page / should load scripts with defer in head", + "Optimized loading page /page1 should render the page /page1", + "Optimized loading page /page1 should not have JS preload links", + "Optimized loading page /page1 should load scripts with defer in head" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/pages-performance-mark/index.test.ts": { + "passed": [ + "pages performance mark should render the page correctly without crashing with performance mark" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/postcss-config-cjs/index.test.ts": { + "passed": ["postcss-config-cjs works with postcss.config.cjs files"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/prerender-crawler.test.ts": { + "passed": [ + "Prerender crawler handling should return prerendered page for correctly", + "Prerender crawler handling should return fallback for non-crawler correctly", + "Prerender crawler handling should block for crawler correctly" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/prerender-native-module.test.ts": { + "passed": [ + "prerender native module should render index correctly", + "prerender native module should render /blog/first correctly", + "prerender native module should render /blog/second correctly" + ], + "failed": ["prerender native module should output traces"], + "pending": [], + "runtimeError": false + }, + "test/e2e/proxy-request-with-middleware/test/index.test.ts": { + "passed": [ + "Requests not effected when middleware used should proxy GET request ", + "Requests not effected when middleware used should proxy POST request with body" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/prerender.test.ts": { + "passed": [ + "Prerender should respond with 405 for POST to static page", + "Prerender should SSR normal page correctly", + "Prerender should SSR incremental page correctly", + "Prerender should SSR blocking path correctly (blocking)", + "Prerender should SSR blocking path correctly (pre-rendered)", + "Prerender should have gsp in __NEXT_DATA__", + "Prerender should not have gsp in __NEXT_DATA__ for non-GSP page", + "Prerender should not supply query values to params or useRouter non-dynamic page SSR", + "Prerender should not supply query values to params in /_next/data request", + "Prerender should not supply query values to params or useRouter dynamic page SSR", + "Prerender should return data correctly", + "Prerender should return data correctly for dynamic page", + "Prerender should return data correctly for dynamic page (non-seeded)", + "Prerender should navigate to a normal page and back", + "Prerender should parse query values on mount correctly", + "Prerender should reload page on failed data request", + "Prerender should SSR dynamic page with brackets in param as object", + "Prerender should navigate to dynamic page with brackets in param as object", + "Prerender should SSR dynamic page with brackets in param as string", + "Prerender should navigate to dynamic page with brackets in param as string", + "Prerender should not return data for fallback: false and missing dynamic page", + "Prerender should server prerendered path correctly for SSG pages that starts with api-docs", + "Prerender should render correctly for SSG pages that starts with api-docs", + "Prerender should return data correctly for SSG pages that starts with api-docs", + "Prerender should SSR catch-all page with brackets in param as string", + "Prerender should navigate to catch-all page with brackets in param as string", + "Prerender should SSR catch-all page with brackets in param as object", + "Prerender should navigate to catch-all page with brackets in param as object", + "Prerender should support prerendered catchall route", + "Prerender should support lazy catchall route", + "Prerender should support nested lazy catchall route", + "Prerender should support prerendered catchall-explicit route (nested)", + "Prerender should support prerendered catchall-explicit route (single)", + "Prerender should handle fallback only page correctly HTML", + "Prerender should handle fallback only page correctly data", + "Prerender should 404 for a missing catchall explicit route", + "Prerender should 404 for an invalid data url", + "Prerender should allow rewriting to SSG page with fallback: false", + "Prerender should allow rewriting to SSG page with fallback: 'blocking'", + "Prerender should show warning when large amount of page data is returned", + "Prerender should show warning every time page with large amount of page data is returned", + "Prerender should not show warning from url prop being returned", + "Prerender should always show fallback for page not in getStaticPaths", + "Prerender should not show fallback for page in getStaticPaths", + "Prerender should never show fallback for page not in getStaticPaths when blocking", + "Prerender should not show fallback for page in getStaticPaths when blocking", + "Prerender should log error in console and browser in dev mode", + "Prerender should always call getStaticProps without caching in dev", + "Prerender should error on bad object from getStaticProps", + "Prerender should error on dynamic page without getStaticPaths", + "Prerender should error on dynamic page without getStaticPaths returning fallback property", + "Prerender should not re-call getStaticProps when updating query", + "Prerender should show fallback before invalid JSON is returned from getStaticProps", + "Prerender should not fallback before invalid JSON is returned from getStaticProps when blocking fallback", + "Prerender should show error for invalid JSON returned from getStaticProps on SSR", + "Prerender should show error for invalid JSON returned from getStaticProps on CST", + "Prerender should not contain headers already sent error", + "Prerender should respond for catch-all deep folder", + "Prerender should not fail to update incremental cache", + "Prerender should not have experimental undici warning", + "Prerender should not have attempted sending invalid payload", + "Prerender should use correct caching headers for a revalidate page", + "Prerender should only show warning once per page when large amount of page data is returned", + "Prerender should use correct caching headers for a no-revalidate page", + "Prerender should not show error for invalid JSON returned from getStaticProps on SSR", + "Prerender should not show error for invalid JSON returned from getStaticProps on CST", + "Prerender outputs dataRoutes in routes-manifest correctly", + "Prerender outputs a prerender-manifest correctly", + "Prerender outputs prerendered files correctly", + "Prerender should handle de-duping correctly", + "Prerender should not revalidate when set to false", + "Prerender should not revalidate when set to false in blocking fallback mode", + "Prerender should not throw error for on-demand revalidate for SSR path", + "Prerender should revalidate on-demand revalidate with preview cookie", + "Prerender should handle revalidating HTML correctly", + "Prerender should handle revalidating JSON correctly", + "Prerender should handle revalidating HTML correctly with blocking", + "Prerender should handle revalidating JSON correctly with blocking", + "Prerender should handle revalidating HTML correctly with blocking and seed", + "Prerender should handle revalidating JSON correctly with blocking and seed", + "Prerender should not fetch prerender data on mount", + "Prerender should not error when flushing cache files", + "Prerender should of formatted build output correctly", + "Prerender should handle on-demand revalidate for fallback: blocking", + "Prerender should automatically reset cache TTL when an error occurs and build cache was available", + "Prerender should automatically reset cache TTL when an error occurs and runtime cache was available", + "Prerender should not on-demand revalidate for fallback: blocking with onlyGenerated if not generated", + "Prerender should on-demand revalidate for fallback: blocking with onlyGenerated if generated", + "Prerender should on-demand revalidate for revalidate: false", + "Prerender should on-demand revalidate that returns notFound: true", + "Prerender should handle on-demand revalidate for fallback: false" + ], + "failed": [ + "Prerender should not error when rewriting to fallback dynamic SSG page", + "Prerender should navigate between pages successfully", + "Prerender should fetch /_next/data correctly with mismatched href and as", + "Prerender should output traces" + ], + "pending": [ + "Prerender should reload page on failed data request, and retry" + ], + "runtimeError": false + }, + "test/e2e/repeated-forward-slashes-error/repeated-forward-slashes-error.test.ts": { + "passed": [ + "repeated-forward-slashes-error should log error when href has repeated forward-slashes" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/next-head/index.test.ts": { + "passed": [], + "failed": [ + "should set-up next should place charset element at the top of ", + "should set-up next should have correct head tags in initial document", + "should set-up next should have correct head tags from a fragment", + "should set-up next should have correct head tags after hydration", + "should set-up next should have current head tags from a _document getInitialProps" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/ssr-react-context/index.test.ts": { + "passed": [ + "React Context should render a page with context", + "React Context should render correctly with context consumer", + "React Context should render with context after change" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/streaming-ssr/index.test.ts": { + "passed": [ + "streaming SSR with custom next configs should work with custom document", + "streaming SSR with custom server should render page correctly under custom server", + "react 18 streaming SSR in minimal mode with node runtime should generate html response by streaming correctly", + "react 18 streaming SSR in minimal mode with node runtime should have generated a static 404 page" + ], + "failed": [ + "streaming SSR with custom next configs should render styled-jsx styles in streaming", + "streaming SSR with custom next configs should redirect paths without trailing-slash and render when slash is appended", + "streaming SSR with custom next configs should render next/router correctly in edge runtime", + "streaming SSR with custom next configs should render multi-byte characters correctly in streaming", + "streaming SSR with custom next configs should match more specific route along with dynamic routes", + "react 18 streaming SSR in minimal mode with node runtime should pass correct nextRuntime values" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/styled-jsx/index.test.ts": { + "passed": [ + "styled-jsx should contain styled-jsx styles during SSR", + "styled-jsx should render styles during CSR", + "styled-jsx should render styles during CSR (AMP)", + "styled-jsx should render styles during SSR (AMP)" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/next-script/index.test.ts": { + "passed": [ + "beforeInteractive in document Head Script is injected server-side", + "beforeInteractive in document body Script is injected server-side", + "experimental.nextScriptWorkers: false with no Partytown dependency Partytown snippet is not injected to head if not enabled in configuration" + ], + "failed": [ + "experimental.nextScriptWorkers: true with required Partytown dependency for external script Partytown snippets are injected to head if enabled in configuration", + "experimental.nextScriptWorkers: true with required Partytown dependency for external script Worker scripts are modified by Partytown to execute on a worker thread", + "experimental.nextScriptWorkers: true with required Partytown dependency for inline script Inline worker script through children is modified by Partytown to execute on a worker thread", + "experimental.nextScriptWorkers: true with required Partytown dependency for inline script Inline worker script through dangerouslySetInnerHtml is modified by Partytown to execute on a worker thread", + "experimental.nextScriptWorkers: true with config override Partytown config script is overwritten" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/switchable-runtime/index.test.ts": { + "passed": [ + "Switchable runtime Switchable runtime (dev) should not include edge api routes and edge ssr routes into dev middleware manifest", + "Switchable runtime Switchable runtime (dev) should not consume server.js file extension" + ], + "failed": [ + "Switchable runtime Switchable runtime (dev) should sort edge SSR routes correctly", + "Switchable runtime Switchable runtime (dev) should be able to navigate between edge SSR routes without any errors", + "Switchable runtime Switchable runtime (dev) should build /api/hello and /api/edge as an api route with edge runtime", + "Switchable runtime Switchable runtime (dev) should be possible to switch between runtimes in API routes", + "Switchable runtime Switchable runtime (dev) should be possible to switch between runtimes in pages", + "Switchable runtime Switchable runtime (prod) should build /static as a static page with the nodejs runtime", + "Switchable runtime Switchable runtime (prod) should build /node-ssr as a dynamic page with the nodejs runtime", + "Switchable runtime Switchable runtime (prod) should build /app-valid-runtime as a dynamic page with the edge runtime", + "Switchable runtime Switchable runtime (prod) should build /edge as a dynamic page with the edge runtime", + "Switchable runtime Switchable runtime (prod) should build /api/hello and /api/edge as an api route with edge runtime", + "Switchable runtime Switchable runtime (prod) should support etag header in the web server" + ], + "pending": [ + "Switchable runtime Switchable runtime (dev) should support client side navigation to ssr rsc pages", + "Switchable runtime Switchable runtime (dev) should support client side navigation to ssg rsc pages", + "Switchable runtime Switchable runtime (dev) should support client side navigation to static rsc pages", + "Switchable runtime Switchable runtime (dev) should be possible to switch between runtimes with same content", + "Switchable runtime Switchable runtime (dev) should recover from syntax error when using edge runtime", + "Switchable runtime Switchable runtime (dev) should not crash the dev server when invalid runtime is configured", + "Switchable runtime Switchable runtime (dev) should give proper errors for invalid runtime in app dir", + "Switchable runtime Switchable runtime (prod) should build /node as a static page with the nodejs runtime", + "Switchable runtime Switchable runtime (prod) should build /node-ssg as a static page with the nodejs runtime", + "Switchable runtime Switchable runtime (prod) should build /node-rsc as a static page with the nodejs runtime", + "Switchable runtime Switchable runtime (prod) should build /node-rsc-ssr as a dynamic page with the nodejs runtime", + "Switchable runtime Switchable runtime (prod) should build /node-rsc-ssg as a static page with the nodejs runtime", + "Switchable runtime Switchable runtime (prod) should build /node-rsc-isr as an isr page with the nodejs runtime", + "Switchable runtime Switchable runtime (prod) should build /edge-rsc as a dynamic page with the edge runtime", + "Switchable runtime Switchable runtime (prod) should display correct tree view with page types in terminal", + "Switchable runtime Switchable runtime (prod) should prefetch data for static pages", + "Switchable runtime Switchable runtime (prod) should support client side navigation to ssr rsc pages", + "Switchable runtime Switchable runtime (prod) should support client side navigation to ssg rsc pages", + "Switchable runtime Switchable runtime (prod) should support client side navigation to static rsc pages" + ], + "runtimeError": false + }, + "test/e2e/test-template/{{ toFileName name }}/{{ toFileName name }}.test.ts": { + "passed": [ + "{{name}} should work using cheerio", + "{{name}} should work using browser", + "{{name}} should work with html", + "{{name}} should work with fetch" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/test-utils-tests/basic/basic.test.ts": { + "passed": ["createNextDescribe should work"], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/third-parties/index.test.ts": { + "passed": [ + "@next/third-parties basic usage renders YoutubeEmbed", + "@next/third-parties basic usage renders GoogleMapsEmbed" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/trailingslash-with-rewrite/index.test.ts": { + "passed": [ + "trailingSlash:true with rewrites and getStaticProps should work" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/transpile-packages/index.test.ts": { + "passed": [ + "transpile packages css should handle global css imports inside transpiled modules", + "transpile packages css should handle global scss imports inside transpiled modules", + "transpile packages css should handle css modules imports inside transpiled modules", + "transpile packages css should handle scss modules imports inside transpiled modules" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/nonce-head-manager/index.test.ts": { + "passed": [], + "failed": [ + "should set-up next should not re-execute the script when re-rendering", + "should set-up next should not re-execute the script when re-rendering with CSP header" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/typescript-version-no-warning/typescript-version-no-warning.test.ts": { + "passed": [ + "typescript-version-no-warning should skip", + "typescript-version-no-warning should not print warning when new typescript version is used with next build" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/opentelemetry/opentelemetry.test.ts": { + "passed": [], + "failed": [ + "opentelemetry app router should handle RSC with fetch", + "opentelemetry app router should handle route handlers in app router", + "opentelemetry pages should handle getServerSideProps", + "opentelemetry pages should handle getStaticProps when fallback: 'blocking'", + "opentelemetry pages should handle api routes in pages" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/typescript-version-warning/typescript-version-warning.test.ts": { + "passed": [ + "typescript-version-warning should skip", + "typescript-version-warning should print warning when old typescript version is used with next build" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/undici-fetch/index.test.ts": { + "passed": [ + "undici fetch undici global fetch should return true when undici is used", + "undici fetch undici global Headers should return true when undici is used", + "undici fetch undici global Request should return true when undici is used", + "undici fetch undici global Response should return true when undici is used" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/yarn-pnp/test/with-eslint.test.ts": { + "passed": [], + "failed": [ + "yarn PnP should compile and serve the index page correctly with-eslint" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/yarn-pnp/test/with-mdx.test.ts": { + "passed": [], + "failed": [ + "yarn PnP should compile and serve the index page correctly with-mdx" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/yarn-pnp/test/with-next-sass.test.ts": { + "passed": [], + "failed": [ + "yarn PnP should compile and serve the index page correctly with-next-sass" + ], + "pending": [], + "runtimeError": false + }, + "test/e2e/type-module-interop/index.test.ts": { + "passed": [ + "Type module interop should render server-side", + "Type module interop should render client-side", + "Type module interop should render server-side with modules", + "Type module interop should render client-side with modules" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/e2e/reload-scroll-backforward-restoration/index.test.ts": { + "passed": [], + "failed": [ + "reload-scroll-back-restoration should restore the scroll position on navigating back", + "reload-scroll-back-restoration should restore the scroll position on navigating forward" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/swc-warnings/index.test.ts": { + "passed": [], + "failed": [ + "swc warnings by default should have warning", + "can force swc should not have warning" + ], + "pending": [], + "runtimeError": true + }, + "test/e2e/skip-trailing-slash-redirect/index.test.ts": { + "passed": [ + "skip-trailing-slash-redirect should not have trailing slash redirects in manifest" + ], + "failed": [ + "skip-trailing-slash-redirect should parse locale info for data request correctly", + "skip-trailing-slash-redirect should be able to redirect locale casing $1", + "skip-trailing-slash-redirect should handle external rewrite correctly /chained-rewrite-ssg", + "skip-trailing-slash-redirect should handle external rewrite correctly /chained-rewrite-static", + "skip-trailing-slash-redirect should handle external rewrite correctly /chained-rewrite-ssr", + "skip-trailing-slash-redirect should handle external rewrite correctly /docs/first", + "skip-trailing-slash-redirect should handle external rewrite correctly /docs-auto-static/first", + "skip-trailing-slash-redirect should handle external rewrite correctly /docs-ssr/first", + "skip-trailing-slash-redirect should allow rewriting invalid buildId correctly", + "skip-trailing-slash-redirect should provide original _next/data URL with skipMiddlewareUrlNormalize", + "skip-trailing-slash-redirect should allow response body from middleware with flag", + "skip-trailing-slash-redirect should merge cookies from middleware and API routes correctly", + "skip-trailing-slash-redirect should merge cookies from middleware and edge API routes correctly", + "skip-trailing-slash-redirect should correct skip URL normalizing in middleware", + "skip-trailing-slash-redirect should apply config redirect correctly", + "skip-trailing-slash-redirect should apply config rewrites correctly", + "skip-trailing-slash-redirect should not apply trailing slash on load on client", + "skip-trailing-slash-redirect pages dir should not apply trailing slash redirect (with slash)", + "skip-trailing-slash-redirect pages dir should not apply trailing slash redirect (without slash)", + "skip-trailing-slash-redirect pages dir should preserve original trailing slashes to links on client", + "skip-trailing-slash-redirect pages dir should respond to index correctly", + "skip-trailing-slash-redirect pages dir should respond to dynamic route correctly", + "skip-trailing-slash-redirect pages dir should navigate client side correctly", + "skip-trailing-slash-redirect app dir should not apply trailing slash redirect (with slash)", + "skip-trailing-slash-redirect app dir should not apply trailing slash redirect (without slash)", + "skip-trailing-slash-redirect app dir should preserve original trailing slashes to links on client", + "skip-trailing-slash-redirect app dir should respond to index correctly", + "skip-trailing-slash-redirect app dir should respond to dynamic route correctly", + "skip-trailing-slash-redirect app dir should navigate client side correctly" + ], + "pending": [], + "runtimeError": true + }, + "test/integration/config/test/index.test.js": { + "passed": [], + "failed": [ + "Configuration should disable X-Powered-By header support", + "Configuration renders server config on the server only", + "Configuration renders public config on the server only", + "Configuration renders the build id in development mode", + "Configuration correctly imports a package that defines `module` but no `main` in package.json", + "Configuration should have config available on the client" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/config-syntax-error/test/index.test.js": { + "passed": [ + "Invalid config syntax should error when next.config.js contains syntax error", + "Invalid config syntax should error when next.config.mjs contains syntax error" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/conflicting-public-file-page/test/index.test.js": { + "passed": [ + "Errors on conflict between public file and page file Throws error during development", + "Errors on conflict between public file and page file Throws error during build" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/config-resolve-alias/test/index.test.js": { + "passed": [], + "failed": [ + "Invalid resolve alias should show relevant error when webpack resolve alias is wrong" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/config-promise-error/test/index.test.js": { + "passed": [], + "failed": [ + "Promise in next config should warn when a promise is returned on webpack" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/config-validation/test/index.test.ts": { + "passed": [ + "next.config.js validation it should validate correctly for invalid config types", + "next.config.js validation it should validate correctly for unexpected config fields" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/critical-css/test/index.test.js": { + "passed": [ + "CSS optimization for SSR apps should have all CSS files in manifest", + "CSS optimization for SSR apps should not inline non-critical css" + ], + "failed": [ + "CSS optimization for SSR apps should inline critical CSS", + "CSS optimization for SSR apps should inline critical CSS (dynamic)" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/conflicting-ssg-paths/test/index.test.js": { + "passed": [ + "Conflicting SSG paths should show proper error when two dynamic SSG routes have conflicting paths", + "Conflicting SSG paths should show proper error when a dynamic SSG route conflicts with normal route", + "Conflicting SSG paths should show proper error when a dynamic SSG route conflicts with SSR route" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/css-minify/test/index.test.js": { + "passed": [], + "failed": ["css-minify should minify correctly by removing whitespace"], + "pending": [], + "runtimeError": false + }, + "test/integration/css-features/test/browserslist.test.js": { + "passed": [], + "failed": [ + "Browserslist: Old should have compiled successfully", + "Browserslist: Old should've emitted a single CSS file", + "Browserslist: New should have compiled successfully", + "Browserslist: New should've emitted a single CSS file" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/custom-error-page-exception/test/index.test.js": { + "passed": [], + "failed": [], + "pending": [ + "Custom error page exception should handle errors from _error render" + ], + "runtimeError": false + }, + "test/integration/css-client-nav/test/index.test.js": { + "passed": [ + "CSS Module client-side navigation production should time out and hard navigate for stalled CSS request", + "CSS Module client-side navigation dev should be able to client-side navigate from red to blue", + "CSS Module client-side navigation dev should be able to client-side navigate from blue to red", + "CSS Module client-side navigation dev should be able to client-side navigate from none to red", + "CSS Module client-side navigation dev should be able to client-side navigate from none to blue" + ], + "failed": [ + "CSS Module client-side navigation production should be able to client-side navigate from red to blue", + "CSS Module client-side navigation production should be able to client-side navigate from blue to red", + "CSS Module client-side navigation production should be able to client-side navigate from none to red", + "CSS Module client-side navigation production should be able to client-side navigate from none to blue" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/custom-page-extension/test/index.test.js": { + "passed": [], + "failed": [ + "Custom page extension dev mode should work with normal page", + "Custom page extension dev mode should work dynamic page", + "Custom page extension production mode should work with normal page", + "Custom page extension production mode should work dynamic page" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/custom-error/test/index.test.js": { + "passed": [ + "Custom _error dev mode 1 should not warn with /_error and /404 when rendering error first", + "Custom _error dev mode 2 should not warn with /_error and /404", + "Custom _error dev mode 2 should warn on custom /_error without custom /404", + "Custom _error production mode should not contain /_error in build output", + "Custom _error production mode renders custom _error successfully" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/custom-routes-catchall/test/index.test.js": { + "passed": [ + "Custom routes dev mode should rewrite and render page correctly", + "Custom routes dev mode should rewrite to /_next/static correctly", + "Custom routes dev mode should rewrite to public/static correctly", + "Custom routes dev mode should rewrite to public file correctly", + "Custom routes production mode should rewrite and render page correctly", + "Custom routes production mode should rewrite to /_next/static correctly", + "Custom routes production mode should rewrite to public/static correctly", + "Custom routes production mode should rewrite to public file correctly" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/custom-routes-i18n-index-redirect/test/index.test.js": { + "passed": [ + "Custom routes i18n with index redirect dev mode should respond to default locale redirects correctly for index redirect", + "Custom routes i18n with index redirect production mode should respond to default locale redirects correctly for index redirect" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/create-next-app/index.test.ts": { + "passed": [ + "create next app non-empty directory", + "create next app empty directory", + "create next app invalid example name", + "create next app valid example", + "create next app valid example without package.json", + "create next app should allow example with GitHub URL", + "create next app should allow example with GitHub URL with trailing slash", + "create next app should allow example with GitHub URL and example-path", + "create next app should use --example-path over the file path in the GitHub URL", + "create next app should fall back to default template", + "create next app should allow an example named default", + "create next app should exit if example flag is empty", + "create next app should exit if the folder is not writable", + "create next app should create a project in the current directory", + "create next app should ask the user for a name for the project if none supplied" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/custom-routes-i18n/test/index.test.js": { + "passed": [ + "Custom routes i18n dev mode should respond to default locale redirects correctly", + "Custom routes i18n dev mode should rewrite index routes correctly", + "Custom routes i18n dev mode should rewrite correctly", + "Custom routes i18n production mode should respond to default locale redirects correctly", + "Custom routes i18n production mode should rewrite index routes correctly", + "Custom routes i18n production mode should rewrite correctly" + ], + "failed": [ + "Custom routes i18n dev mode should navigate on the client with rewrites correctly", + "Custom routes i18n production mode should navigate on the client with rewrites correctly" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/css-features/test/css-modules.test.js": { + "passed": [], + "failed": [ + "Custom Properties: Fail for :root {} in CSS Modules should fail to build", + "Custom Properties: Fail for global element in CSS Modules should fail to build", + "CSS Modules: Import Global CSS should have compiled successfully", + "CSS Modules: Import Global CSS should've emitted a single CSS file", + "CSS Modules: Importing Invalid Global CSS should fail to build", + "CSS Modules: Import Exports should have compiled successfully", + "CSS Modules: Import Exports should've emitted a single CSS file" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/css-modules/test/index.test.js": { + "passed": [ + "Has CSS Module in computed styles in Development should have CSS for page", + "Has CSS Module in computed styles in Production should have CSS for page", + "Can hot reload CSS Module without losing state should update CSS color without remounting ", + "Dynamic Route CSS Module Usage should apply styles correctly", + "Catch-all Route CSS Module Usage should apply styles correctly" + ], + "failed": [ + "Basic CSS Module Support should have compiled successfully", + "Basic CSS Module Support should've emitted a single CSS file", + "Basic CSS Module Support should've injected the CSS on server render", + "3rd Party CSS Module Support should have compiled successfully", + "3rd Party CSS Module Support should've emitted a single CSS file", + "3rd Party CSS Module Support should've injected the CSS on server render", + "Has CSS Module in computed styles in Production should have compiled successfully", + "Valid CSS Module Usage from within node_modules should have compiled successfully", + "Valid CSS Module Usage from within node_modules should've prerendered with relevant data", + "Valid CSS Module Usage from within node_modules should've emitted a single CSS file", + "Valid Nested CSS Module Usage from within node_modules should have compiled successfully", + "Valid Nested CSS Module Usage from within node_modules should've prerendered with relevant data", + "Valid Nested CSS Module Usage from within node_modules should've emitted a single CSS file", + "CSS Module Composes Usage (Basic) should have compiled successfully", + "CSS Module Composes Usage (Basic) should've emitted a single CSS file", + "CSS Module Composes Usage (External) should have compiled successfully", + "CSS Module Composes Usage (External) should've emitted a single CSS file", + "Dynamic Route CSS Module Usage should have compiled successfully", + "Dynamic Route CSS Module Usage should've emitted a single CSS file", + "Catch-all Route CSS Module Usage should have compiled successfully", + "Catch-all Route CSS Module Usage should've emitted a single CSS file" + ], + "pending": [ + "Invalid CSS Module Usage in node_modules should fail to build", + "Invalid Global CSS Module Usage in node_modules should fail to build" + ], + "runtimeError": false + }, + "test/integration/css/test/basic-global-support.test.js": { + "passed": [], + "failed": [ + "Basic Global Support should compile successfully", + "Basic Global Support should've emitted a single CSS file", + "Basic Global Support with special characters in path should compile successfully", + "Basic Global Support with special characters in path should've emitted a single CSS file", + "Basic Global Support with src/ dir should compile successfully", + "Basic Global Support with src/ dir should've emitted a single CSS file", + "Multi Global Support should compile successfully", + "Multi Global Support should've emitted a single CSS file", + "Nested @import() Global Support should compile successfully", + "Nested @import() Global Support should've emitted a single CSS file", + "Multi Global Support (reversed) should compile successfully", + "Multi Global Support (reversed) should've emitted a single CSS file", + "CSS URL via `file-loader` should compile successfully", + "CSS URL via `file-loader` should've emitted expected files", + "CSS URL via `file-loader` and asset prefix (1) should compile successfully", + "CSS URL via `file-loader` and asset prefix (1) should've emitted expected files", + "CSS URL via `file-loader` and asset prefix (2) should compile successfully", + "CSS URL via `file-loader` and asset prefix (2) should've emitted expected files" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/create-next-app/package-manager.test.ts": { + "passed": [ + "should use npm as the package manager on supplying --use-npm", + "should use npm as the package manager on supplying --use-npm with example", + "should use Yarn as the package manager on supplying --use-yarn", + "should use Yarn as the package manager on supplying --use-yarn with example", + "should use pnpm as the package manager on supplying --use-pnpm", + "should use pnpm as the package manager on supplying --use-pnpm with example", + "should use Bun as the package manager on supplying --use-bun with example", + "should infer npm as the package manager", + "should infer npm as the package manager with example", + "should infer yarn as the package manager", + "should infer yarn as the package manager with example", + "should infer pnpm as the package manager", + "should infer pnpm as the package manager with example", + "should infer Bun as the package manager", + "should infer Bun as the package manager with example" + ], + "failed": ["should use Bun as the package manager on supplying --use-bun"], + "pending": [], + "runtimeError": false + }, + "test/integration/css/test/css-and-styled-jsx.test.js": { + "passed": [ + "Ordering with styled-jsx (dev) should have the correct color (css ordering)", + "Ordering with styled-jsx (prod) should have the correct color (css ordering)" + ], + "failed": [ + "Ordering with styled-jsx (prod) should have compiled successfully" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/css-features/test/index.test.js": { + "passed": [], + "failed": [ + "Custom Properties: Pass-Through IE11 should have compiled successfully", + "Custom Properties: Pass-Through IE11 should've emitted a single CSS file", + "Custom Properties: Pass-Through Modern should have compiled successfully", + "Custom Properties: Pass-Through Modern should've emitted a single CSS file", + "Inline Comments: Minify should have compiled successfully", + "Inline Comments: Minify should've emitted a single CSS file" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/css-customization/test/index.test.js": { + "passed": [], + "failed": [ + "CSS Customization should compile successfully", + "CSS Customization should've compiled and prefixed", + "CSS Customization should've emitted a source map", + "CSS Customization Array should compile successfully", + "CSS Customization Array should've compiled and prefixed", + "CSS Customization Array should've emitted a source map", + "CSS Customization custom loader should compile successfully", + "CSS Customization custom loader should've applied style", + "Bad CSS Customization should compile successfully", + "Bad CSS Customization should've compiled and prefixed", + "Bad CSS Customization should've emitted a source map", + "Bad CSS Customization Array (1) should fail the build", + "Bad CSS Customization Array (2) should fail the build", + "Bad CSS Customization Array (3) should fail the build", + "Bad CSS Customization Array (4) should fail the build", + "Bad CSS Customization Array (5) should fail the build", + "Bad CSS Customization Array (6) should fail the build", + "Bad CSS Customization Array (7) should fail the build", + "Bad CSS Customization Array (8) should fail the build", + "Bad CSS Customization Function should fail the build" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/create-next-app/templates-app.test.ts": { + "passed": [ + "create-next-app --app should create TS appDir projects with --ts", + "create-next-app --app should create JS appDir projects with --js", + "create-next-app --app should create JS appDir projects with --js --src-dir", + "create-next-app --app should create Tailwind CSS appDir projects with --tailwind" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/css/test/css-compilation.test.js": { + "passed": [], + "failed": [ + "CSS Support CSS Compilation and Prefixing should compile successfully", + "CSS Support CSS Compilation and Prefixing should've compiled and prefixed", + "CSS Support CSS Compilation and Prefixing should've emitted a source map", + "CSS Support React Lifecyce Order (production) should have compiled successfully", + "CSS Support React Lifecyce Order (production) should have the correct color on mount after navigation", + "CSS Support Has CSS in computed styles in Production should have compiled successfully", + "CSS Support Has CSS in computed styles in Production should have CSS for page", + "CSS Support Has CSS in computed styles in Production should've preloaded the CSS file and injected it in ", + "CSS Support Good CSS Import from node_modules should compile successfully", + "CSS Support Good CSS Import from node_modules should've emitted a single CSS file", + "CSS Support Good Nested CSS Import from node_modules should compile successfully", + "CSS Support Good Nested CSS Import from node_modules should've emitted a single CSS file", + "CSS Property Ordering should have compiled successfully", + "CSS Property Ordering should have the border width (property ordering)" + ], + "pending": [], + "runtimeError": false + }, + "test/integration/create-next-app/templates-pages.test.ts": { + "passed": [ + "create-next-app templates should prompt user to choose if --ts or --js is not provided", + "create-next-app templates should create TS projects with --ts, --typescript", + "create-next-app templates should create TS projects with --ts, --typescript --src-dir", + "create-next-app templates should create JS projects with --js, --javascript", + "create-next-app templates should create JS projects with --js, --javascript --src-dir", + "create-next-app templates should prompt user to choose if --import-alias is not provided", + "create-next-app templates should work with --tailwind and --src together", + "create-next-app templates should prompt user to choose if --tailwind or --no-tailwind is not provided" + ], + "failed": [], + "pending": [], + "runtimeError": false + }, + "test/integration/css/test/css-rendering.test.js": { + "passed": [ + "CSS Support CSS Import from node_modules should fail the build", + "CSS Support CSS page transition inject