fix: test helpers extension timeout (#154)

This commit is contained in:
Nikhil
2026-01-02 16:29:05 -08:00
committed by GitHub
parent f66fdae2c1
commit 3a370ce27d
2 changed files with 16 additions and 7 deletions

View File

@@ -20,6 +20,7 @@ export interface TestEnvironmentConfig {
cdpPort: number
serverPort: number
extensionPort: number
skipExtension?: boolean
}
const DEFAULT_CONFIG: TestEnvironmentConfig = {
@@ -95,9 +96,10 @@ export async function ensureBrowserOS(
cdpPort: options?.cdpPort ?? DEFAULT_CONFIG.cdpPort,
serverPort: options?.serverPort ?? DEFAULT_CONFIG.serverPort,
extensionPort: options?.extensionPort ?? DEFAULT_CONFIG.extensionPort,
skipExtension: options?.skipExtension ?? false,
}
// Fast path: already running with same config and extension connected
// Fast path: already running with same config
const serverState = getServerState()
const browserState = getBrowserState()
if (
@@ -106,7 +108,10 @@ export async function ensureBrowserOS(
configsMatch(serverState.config, config) &&
configsMatch(browserState.config, config)
) {
if (await isExtensionConnected(config.serverPort)) {
if (
config.skipExtension ||
(await isExtensionConnected(config.serverPort))
) {
console.log('Reusing existing test environment')
return config
}
@@ -130,10 +135,14 @@ export async function ensureBrowserOS(
}
await spawnBrowser(browserConfig)
// 4. Wait for extension to connect
console.log('Waiting for extension to connect...')
await waitForExtensionConnection(config.serverPort)
console.log('Extension connected')
// 4. Wait for extension to connect (unless skipped for CDP-only tests)
if (!config.skipExtension) {
console.log('Waiting for extension to connect...')
await waitForExtensionConnection(config.serverPort)
console.log('Extension connected')
} else {
console.log('Skipping extension connection (CDP-only mode)')
}
console.log('=== Test environment ready ===\n')
return config

View File

@@ -80,7 +80,7 @@ export async function withBrowser(
_options: { debug?: boolean } = {},
): Promise<void> {
return await browserMutex.runExclusive(async () => {
const config = await ensureBrowserOS()
const config = await ensureBrowserOS({ skipExtension: true })
if (!cachedBrowser || !cachedBrowser.connected) {
cachedBrowser = await puppeteer.connect({