Skip to content

Commit e9d6e21

Browse files
committed
try fix port usage for e2e dog fooding tests
1 parent accf518 commit e9d6e21

3 files changed

Lines changed: 17 additions & 2 deletions

File tree

e2e/dogfooding.spec.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
deleteStack,
77
expectNotification,
88
fillServiceForm,
9+
getAvailablePort,
910
login,
1011
navigateToCreateService,
1112
submitServiceForm,
@@ -43,7 +44,8 @@ It is used to test the following features:
4344
4445
`
4546

46-
const dogfoodingPort = browserName === 'chromium' ? 19090 : 19091
47+
const dogfoodingPort = await getAvailablePort()
48+
const mcpPort = await getAvailablePort()
4749
const workingDirectory = `/tmp/e2e-dog-fooding-time-${uuid}`
4850

4951
await page.goto('/')
@@ -160,7 +162,7 @@ It is used to test the following features:
160162
const mcpSourceSelect = mcpOverride.locator('shade-select').first()
161163
await mcpSourceSelect.locator('.select-trigger').click()
162164
await mcpSourceSelect.locator('.dropdown-item', { hasText: 'Custom value' }).click()
163-
await mcpOverride.locator('shade-input input').fill(String(dogfoodingPort + 1))
165+
await mcpOverride.locator('shade-input input').fill(String(mcpPort))
164166

165167
// Save the overrides and wait for the save to complete
166168
const saveButton = page.getByTestId('save-env-overrides')

e2e/helpers/get-available-port.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { createServer } from 'net'
2+
3+
/** Binds to port 0 so the OS assigns a free port, then closes the server and returns the port number */
4+
export const getAvailablePort = (): Promise<number> =>
5+
new Promise((resolve, reject) => {
6+
const server = createServer()
7+
server.listen(0, () => {
8+
const { port } = server.address() as { port: number }
9+
server.close(() => resolve(port))
10+
})
11+
server.on('error', reject)
12+
})

e2e/helpers/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
export { getAvailablePort } from './get-available-port.js'
12
export { login } from './login.js'
23
export { expectNotification } from './notification.js'
34
export { addPrerequisite, type PrerequisiteParams } from './prerequisite.js'

0 commit comments

Comments
 (0)