Skip to content

Commit

Permalink
Remove Review app “port detection” checks for Jest
Browse files Browse the repository at this point in the history
Port detection has now been fixed in `jest-dev-server`: argos-ci/jest-puppeteer#518
  • Loading branch information
colinrotherham committed Feb 21, 2023
1 parent aa5608d commit f371838
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 50 deletions.
7 changes: 1 addition & 6 deletions config/jest/browser/close.mjs
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
import { teardown } from 'jest-environment-puppeteer'

import serverStop from '../server/stop.mjs'

/**
* Close browser
*/
export default async function browserClose () {
await Promise.all([
serverStop(), // Stop web server
teardown() // Close browser
])
await teardown() // Close browser, stop server
}
5 changes: 1 addition & 4 deletions config/jest/browser/open.mjs
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import { setup } from 'jest-environment-puppeteer'
import { downloadBrowser } from 'puppeteer/lib/esm/puppeteer/node/install.js'

import serverStart from '../server/start.mjs'

/**
* Open browser
*
Expand All @@ -20,6 +18,5 @@ export default async function browserOpen (jestConfig) {
}

await downloadBrowser() // Download browser
await serverStart() // Wait for web server
await setup(jestConfig) // Open browser
await setup(jestConfig) // Open browser, start server
}
38 changes: 3 additions & 35 deletions config/jest/server/start.mjs
Original file line number Diff line number Diff line change
@@ -1,42 +1,10 @@
import { getServers, setup } from 'jest-dev-server'
import waitOn from 'wait-on'
import { setup } from 'jest-dev-server'

import config from '../../index.js'

import serverStop from './stop.mjs'

const PORT = process.env.PORT || config.ports.test
import config from '../../../jest-dev-server.config.js'

/**
* Start web server
*/
export default async function serverStart () {
const servers = await getServers()

// Server start timeout
let timeout = 1000

// Server stopping?
if (servers.some(({ signalCode }) => signalCode === 'SIGTERM')) {
await serverStop() // Wait for server to stop
timeout = 0 // No need to wait for start
}

// Wait until ready check
const ready = ({ timeout = 30000 } = {}) => waitOn({
resources: [`tcp:${PORT}`],
timeout
})

// Wait until ready (or start up)
try {
await ready({ timeout })
} catch (error) {
await setup({
// Ensure PORT works (on Windows) + SIGINT/SIGTERM signal events
command: `cross-env-shell PORT=${PORT} node app/start.js`,
port: PORT
})
await ready()
}
await setup(config)
}
15 changes: 15 additions & 0 deletions jest-dev-server.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
const { ports } = require('./config/index.js')

const PORT = process.env.PORT || ports.test

/**
* @type {import('jest-dev-server').JestDevServerOptions}
*/
module.exports = {
// Ensure PORT works (on Windows) + SIGINT/SIGTERM signal events
command: `cross-env-shell PORT=${PORT} node app/start.js`,
port: PORT,

// Skip when already running
usedPortAction: 'ignore'
}
11 changes: 10 additions & 1 deletion jest-puppeteer.config.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
const devServerOptions = require('./jest-dev-server.config.js')

module.exports = {
browserContext: 'incognito',
browserPerWorker: true,
Expand All @@ -9,6 +11,8 @@ module.exports = {
exitOnPageError: false,

/**
* Puppeteer launch options
*
* @type {import('puppeteer').PuppeteerLaunchOptions}
*/
launch: {
Expand All @@ -27,5 +31,10 @@ module.exports = {
'--no-startup-window'
],
waitForInitialPage: false
}
},

/**
* Development server options
*/
server: devServerOptions
}
3 changes: 1 addition & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,7 @@
"standard": "^17.0.0",
"stylelint": "^14.16.1",
"stylelint-config-gds": "^0.2.0",
"stylelint-order": "^6.0.2",
"wait-on": "^7.0.1"
"stylelint-order": "^6.0.2"
},
"overrides": {
"chokidar@^2": {
Expand Down

0 comments on commit f371838

Please sign in to comment.