Skip to content
Open
11 changes: 5 additions & 6 deletions e2e/react-start/basic/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,13 @@
"build:spa": "MODE=spa vite build && tsc --noEmit",
"build:prerender": "MODE=prerender vite build && tsc --noEmit",
"preview": "vite preview",
"start": "pnpx srvx --prod -s ../client dist/server/server.js",
"start:spa": "node server.js",
"start": "node server.js",
"test:e2e:startDummyServer": "node -e 'import(\"./tests/setup/global.setup.ts\").then(m => m.default())' &",
"test:e2e:stopDummyServer": "node -e 'import(\"./tests/setup/global.teardown.ts\").then(m => m.default())'",
"test:e2e:spaMode": "rm -rf port*.txt; MODE=spa playwright test --project=chromium",
"test:e2e:ssrMode": "rm -rf port*.txt; playwright test --project=chromium",
"test:e2e:prerender": "rm -rf port*.txt; MODE=prerender playwright test --project=chromium",
"test:e2e:preview": "rm -rf port*.txt; MODE=preview playwright test --project=chromium",
"test:e2e:spaMode": "rm -rf dist; rm -rf port*.txt; MODE=spa playwright test --project=chromium",
"test:e2e:ssrMode": "rm -rf dist; rm -rf port*.txt; playwright test --project=chromium",
"test:e2e:prerender": "rm -rf dist; rm -rf port*.txt; MODE=prerender playwright test --project=chromium",
"test:e2e:preview": "rm -rf dist; rm -rf port*.txt; MODE=preview playwright test --project=chromium",
"test:e2e": "pnpm run test:e2e:spaMode && pnpm run test:e2e:ssrMode && pnpm run test:e2e:prerender && pnpm run test:e2e:preview"
},
"dependencies": {
Expand Down
2 changes: 1 addition & 1 deletion e2e/react-start/basic/playwright.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const START_PORT = await getTestServerPort(
)
const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)
const baseURL = `http://localhost:${PORT}`
const spaModeCommand = `pnpm build:spa && pnpm start:spa`
const spaModeCommand = `pnpm build:spa && pnpm start`
const ssrModeCommand = `pnpm build && pnpm start`
const prerenderModeCommand = `pnpm run test:e2e:startDummyServer && pnpm build:prerender && pnpm run test:e2e:stopDummyServer && pnpm start`
const previewModeCommand = `pnpm build && pnpm preview --port ${PORT}`
Expand Down
37 changes: 25 additions & 12 deletions e2e/react-start/basic/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,18 @@ const port = process.env.PORT || 3000

const startPort = process.env.START_PORT || 3001

const isSpaMode = process.env.MODE === 'spa'
const isPrerender = process.env.MODE === 'prerender'

export async function createStartServer() {
const server = (await import('./dist/server/server.js')).default
const nodeHandler = toNodeHandler(server.fetch)

const app = express()

app.use(express.static('./dist/client'))
// to keep testing uniform stop express from redirecting /posts to /posts/
// when serving pre-rendered pages
app.use(express.static('./dist/client', { redirect: !isPrerender }))

app.use(async (req, res, next) => {
try {
Expand Down Expand Up @@ -54,14 +59,22 @@ export async function createSpaServer() {
return { app }
}

createSpaServer().then(async ({ app }) =>
app.listen(port, () => {
console.info(`Client Server: http://localhost:${port}`)
}),
)

createStartServer().then(async ({ app }) =>
app.listen(startPort, () => {
console.info(`Start Server: http://localhost:${startPort}`)
}),
)
if (isSpaMode) {
createSpaServer().then(async ({ app }) =>
app.listen(port, () => {
console.info(`Client Server: http://localhost:${port}`)
}),
)

createStartServer().then(async ({ app }) =>
app.listen(startPort, () => {
console.info(`Start Server: http://localhost:${startPort}`)
}),
)
} else {
createStartServer().then(async ({ app }) =>
app.listen(port, () => {
console.info(`Start Server: http://localhost:${port}`)
}),
)
}
Loading
Loading