Skip to content

Commit

Permalink
add standalone testcase for ipv6 hostnames (#53999)
Browse files Browse the repository at this point in the history
This adds a test case for ipv6 hostnames in standalone mode

- Follow up to #53131
  • Loading branch information
ztanner authored Aug 14, 2023
1 parent a7c5d8a commit c4f9c6d
Show file tree
Hide file tree
Showing 5 changed files with 99 additions and 0 deletions.
3 changes: 3 additions & 0 deletions test/production/standalone-mode/ipv6/app/app-page/page.js
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
output: 'standalone',
}
3 changes: 3 additions & 0 deletions test/production/standalone-mode/ipv6/pages/pages-page.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export default function AppPage() {
return <div>Hello from Pages</div>
}

0 comments on commit c4f9c6d

Please sign in to comment.