File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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' )
Original file line number Diff line number Diff line change 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+ } )
Original file line number Diff line number Diff line change 1+ export { getAvailablePort } from './get-available-port.js'
12export { login } from './login.js'
23export { expectNotification } from './notification.js'
34export { addPrerequisite , type PrerequisiteParams } from './prerequisite.js'
You can’t perform that action at this time.
0 commit comments