Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add standalone testcase for ipv6 hostnames #53999

Merged
merged 4 commits into from Aug 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 3 additions & 0 deletions test/production/standalone-mode/ipv6/app/app-page/page.js
@@ -0,0 +1,3 @@
export default function AppPage() {
return <div>Hello from App</div>
}
8 changes: 8 additions & 0 deletions test/production/standalone-mode/ipv6/app/layout.js
@@ -0,0 +1,8 @@
export default function Layout({ children }) {
return (
<html>
<head />
<body>{children}</body>
</html>
)
}
82 changes: 82 additions & 0 deletions test/production/standalone-mode/ipv6/index.test.ts
@@ -0,0 +1,82 @@
import { NextInstance, createNext } from 'e2e-utils'
import fs from 'fs-extra'
import glob from 'glob'
import {
findPort,
initNextServerScript,
killApp,
renderViaHTTP,
} from 'next-test-utils'
import { join } from 'path'

describe('standalone mode: ipv6 hostname', () => {
let next: NextInstance
let server
let appPort
let output = ''

beforeAll(async () => {
next = await createNext({
files: __dirname,
})
await next.stop()

await fs.move(
join(next.testDir, '.next/standalone'),
join(next.testDir, 'standalone')
)

for (const file of await fs.readdir(next.testDir)) {
if (file !== 'standalone') {
await fs.remove(join(next.testDir, file))
console.log('removed', file)
}
}
const files = glob.sync('**/*', {
cwd: join(next.testDir, 'standalone/.next/server/pages'),
dot: true,
})

for (const file of files) {
if (file.endsWith('.json') || file.endsWith('.html')) {
await fs.remove(join(next.testDir, '.next/server', file))
}
}

const testServer = join(next.testDir, 'standalone/server.js')
appPort = await findPort()
server = await initNextServerScript(
testServer,
/ready started server on/,
{
...process.env,
HOSTNAME: '::',
PORT: appPort,
},
undefined,
{
cwd: next.testDir,
onStdout(msg) {
output += msg
},
onStderr(msg) {
output += msg
},
}
)
})
afterAll(async () => {
await next.destroy()
if (server) await killApp(server)
})

it('should load the page without any errors', async () => {
expect(output).toContain(`started server on`)

let html = await renderViaHTTP(appPort, '/app-page')
expect(html).toContain('Hello from App')

html = await renderViaHTTP(appPort, '/pages-page')
expect(html).toContain('Hello from Pages')
})
})
3 changes: 3 additions & 0 deletions test/production/standalone-mode/ipv6/next.config.js
@@ -0,0 +1,3 @@
module.exports = {
output: 'standalone',
}
3 changes: 3 additions & 0 deletions test/production/standalone-mode/ipv6/pages/pages-page.js
@@ -0,0 +1,3 @@
export default function AppPage() {
return <div>Hello from Pages</div>
}