test: do not rely on hardcoded port numbers

This commit is contained in:
Zoltan Kochan
2025-09-24 08:55:49 +02:00
parent 4a2d87107d
commit 63805521f9
5 changed files with 22 additions and 9 deletions

View File

@@ -1,10 +1,10 @@
import { createServer } from 'http'
const server = createServer()
server.listen(9999, (err) => {
server.listen(process.env.BAR_PORT, (err) => {
if (err) {
console.log(`[bar] dev error:`, err)
}
console.log(`[bar] server listen on 9999`)
console.log(`[bar] server listen on ${process.env.BAR_PORT}`)
setTimeout(() => {
throw new Error('[bar] server error, Oops')
}, 2000)

View File

@@ -1,8 +1,8 @@
import { createServer } from 'http'
const server = createServer()
server.listen(9990, (err) => {
server.listen(process.env.FOO_PORT, (err) => {
if (err) {
console.log(`[foo] dev error:`, err)
}
console.log(`[foo] server listen on 9990`)
console.log(`[foo] server listen on ${process.env.FOO_PORT}`)
})

7
pnpm-lock.yaml generated
View File

@@ -6558,6 +6558,9 @@ importers:
exists-link:
specifier: 'catalog:'
version: 2.0.0
get-port:
specifier: 'catalog:'
version: 5.1.1
is-windows:
specifier: 'catalog:'
version: 1.0.2
@@ -17226,7 +17229,7 @@ snapshots:
'@pnpm/catalogs.resolver@1000.0.2':
dependencies:
'@pnpm/catalogs.protocol-parser': 1000.0.0
'@pnpm/error': 1000.0.2
'@pnpm/error': 1000.0.4
'@pnpm/catalogs.types@1000.0.0': {}
@@ -17836,7 +17839,7 @@ snapshots:
'@pnpm/npm-lifecycle@1000.0.4(typanion@3.14.0)':
dependencies:
'@pnpm/byline': 1.0.0
'@pnpm/error': 1000.0.2
'@pnpm/error': 1000.0.4
'@yarnpkg/fslib': 3.1.2
'@yarnpkg/shell': 4.0.0(typanion@3.14.0)
node-gyp: 11.4.2

View File

@@ -151,6 +151,7 @@
"deep-require-cwd": "catalog:",
"delay": "catalog:",
"dir-is-case-sensitive": "catalog:",
"get-port": "catalog:",
"esbuild": "catalog:",
"execa": "catalog:",
"exists-link": "catalog:",

View File

@@ -1,4 +1,5 @@
import { prepare, preparePackages } from '@pnpm/prepare'
import getPort from 'get-port'
import { sync as writeYamlFile } from 'write-yaml-file'
import { execPnpmSync } from './utils/index.js'
import { fixtures } from '@pnpm/test-fixtures'
@@ -42,10 +43,18 @@ test('should print json format error when add dependency on workspace root', asy
})
test('should clean up child processes when process exited', async () => {
const fooPort = await getPort()
const barPort = await getPort()
process.chdir(multipleScriptsErrorExit)
execPnpmSync(['run', '/^dev:.*/'], { stdio: 'inherit', env: {} })
expect(await isPortInUse(9990)).toBe(false)
expect(await isPortInUse(9999)).toBe(false)
execPnpmSync(['run', '/^dev:.*/'], {
stdio: 'inherit',
env: {
FOO_PORT: fooPort.toString(),
BAR_PORT: barPort.toString(),
},
})
expect(await isPortInUse(fooPort)).toBe(false)
expect(await isPortInUse(barPort)).toBe(false)
})
test('should print error summary when some packages fail with --no-bail', async () => {