mirror of
https://github.com/hanzoai/next.js.git
synced 2026-10-30 14:46:38 +00:00
This PR is the initiative of deprecating the edge runtime. Proxy will default to Node.js runtime, and will not allow runtime config. If the users want to use the edge runtime, they should stay on the Middleware, though we recommend starting the migration. --------- Co-authored-by: devjiwonchoi <[email protected]> Co-authored-by: JJ Kasper <[email protected]>
47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import { nextTestSetup } from 'e2e-utils'
|
|
import stripAnsi from 'strip-ansi'
|
|
|
|
describe('proxy-runtime', () => {
|
|
const { next, isNextDev, skipped } = nextTestSetup({
|
|
files: __dirname,
|
|
skipDeployment: true,
|
|
skipStart: true,
|
|
})
|
|
|
|
if (skipped) {
|
|
return
|
|
}
|
|
|
|
it('should error when proxy file has runtime config export', async () => {
|
|
let cliOutput: string
|
|
|
|
if (isNextDev) {
|
|
await next.start().catch(() => {})
|
|
// Use .catch() because Turbopack errors during compile and exits before runtime.
|
|
await next.browser('/').catch(() => {})
|
|
cliOutput = next.cliOutput
|
|
} else {
|
|
cliOutput = (await next.build()).cliOutput
|
|
}
|
|
|
|
// TODO: Investigate why in dev-turbo, the error is shown in the browser console, not CLI output.
|
|
if (process.env.IS_TURBOPACK_TEST && !isNextDev) {
|
|
expect(stripAnsi(cliOutput)).toContain(`proxy.ts:3:14
|
|
Next.js can't recognize the exported \`config\` field in route. Proxy does not support Edge runtime.
|
|
1 | export default function () {}
|
|
2 |
|
|
> 3 | export const config = { runtime: 'edge' }
|
|
| ^^^^^^
|
|
4 |
|
|
|
|
The exported configuration object in a source file needs to have a very specific format from which some properties can be statically parsed at compiled-time.`)
|
|
} else {
|
|
expect(cliOutput).toContain(
|
|
`Route segment config is not allowed in Proxy file at "./proxy.ts". Proxy always runs on Node.js runtime. Learn more: https://nextjs.org/docs/messages/middleware-to-proxy`
|
|
)
|
|
}
|
|
|
|
await next.stop()
|
|
})
|
|
})
|