зеркало из https://github.com/github/docs.git
43 строки
1.3 KiB
JavaScript
Executable File
43 строки
1.3 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
import setupJestPuppeteer from 'jest-environment-puppeteer/setup.js'
|
|
|
|
import { main } from '../start-server.js'
|
|
|
|
import { PORT, START_JEST_SERVER, isServerHealthy, isPortRunning } from './server-for-jest.js'
|
|
|
|
export default async () => {
|
|
if (START_JEST_SERVER) {
|
|
console.log(`Starting a server for jest on port :${PORT}.`)
|
|
|
|
process.env.NODE_ENV = 'test'
|
|
// Has to be this because that's what the end-to-end tests expect
|
|
process.env.PORT = `${PORT}`
|
|
|
|
if (await isPortRunning()) {
|
|
console.error(`Something's already running on :${PORT}`)
|
|
console.log(
|
|
'If you intend to run jest tests with an existing server, set env var START_JEST_SERVER=false'
|
|
)
|
|
process.exit(1)
|
|
}
|
|
|
|
// So it can be accessed from the script that
|
|
// is set up by the jest config: `globalTeardown`
|
|
global.__SERVER__ = await main()
|
|
|
|
console.assert(await isServerHealthy())
|
|
} else {
|
|
console.warn(`jest is NOT automatically starting a server on port :${PORT}`)
|
|
}
|
|
|
|
// The way jest-puppeteer works is that you add a preset in
|
|
// `jest.config.js` but that preset will clash with the execution
|
|
// of this script. So we have to manually do what we do normally
|
|
// do in `jest.config.js`.
|
|
// Note, we can delete this when we migrate to Playwright.
|
|
if (process.env.BROWSER) {
|
|
await setupJestPuppeteer()
|
|
}
|
|
}
|