mirror of
https://github.com/browseros-ai/BrowserOS.git
synced 2026-05-20 20:39:10 +00:00
fix: test helpers extension timeout (#154)
This commit is contained in:
@@ -20,6 +20,7 @@ export interface TestEnvironmentConfig {
|
|||||||
cdpPort: number
|
cdpPort: number
|
||||||
serverPort: number
|
serverPort: number
|
||||||
extensionPort: number
|
extensionPort: number
|
||||||
|
skipExtension?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
const DEFAULT_CONFIG: TestEnvironmentConfig = {
|
const DEFAULT_CONFIG: TestEnvironmentConfig = {
|
||||||
@@ -95,9 +96,10 @@ export async function ensureBrowserOS(
|
|||||||
cdpPort: options?.cdpPort ?? DEFAULT_CONFIG.cdpPort,
|
cdpPort: options?.cdpPort ?? DEFAULT_CONFIG.cdpPort,
|
||||||
serverPort: options?.serverPort ?? DEFAULT_CONFIG.serverPort,
|
serverPort: options?.serverPort ?? DEFAULT_CONFIG.serverPort,
|
||||||
extensionPort: options?.extensionPort ?? DEFAULT_CONFIG.extensionPort,
|
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 serverState = getServerState()
|
||||||
const browserState = getBrowserState()
|
const browserState = getBrowserState()
|
||||||
if (
|
if (
|
||||||
@@ -106,7 +108,10 @@ export async function ensureBrowserOS(
|
|||||||
configsMatch(serverState.config, config) &&
|
configsMatch(serverState.config, config) &&
|
||||||
configsMatch(browserState.config, config)
|
configsMatch(browserState.config, config)
|
||||||
) {
|
) {
|
||||||
if (await isExtensionConnected(config.serverPort)) {
|
if (
|
||||||
|
config.skipExtension ||
|
||||||
|
(await isExtensionConnected(config.serverPort))
|
||||||
|
) {
|
||||||
console.log('Reusing existing test environment')
|
console.log('Reusing existing test environment')
|
||||||
return config
|
return config
|
||||||
}
|
}
|
||||||
@@ -130,10 +135,14 @@ export async function ensureBrowserOS(
|
|||||||
}
|
}
|
||||||
await spawnBrowser(browserConfig)
|
await spawnBrowser(browserConfig)
|
||||||
|
|
||||||
// 4. Wait for extension to connect
|
// 4. Wait for extension to connect (unless skipped for CDP-only tests)
|
||||||
console.log('Waiting for extension to connect...')
|
if (!config.skipExtension) {
|
||||||
await waitForExtensionConnection(config.serverPort)
|
console.log('Waiting for extension to connect...')
|
||||||
console.log('Extension connected')
|
await waitForExtensionConnection(config.serverPort)
|
||||||
|
console.log('Extension connected')
|
||||||
|
} else {
|
||||||
|
console.log('Skipping extension connection (CDP-only mode)')
|
||||||
|
}
|
||||||
|
|
||||||
console.log('=== Test environment ready ===\n')
|
console.log('=== Test environment ready ===\n')
|
||||||
return config
|
return config
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ export async function withBrowser(
|
|||||||
_options: { debug?: boolean } = {},
|
_options: { debug?: boolean } = {},
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
return await browserMutex.runExclusive(async () => {
|
return await browserMutex.runExclusive(async () => {
|
||||||
const config = await ensureBrowserOS()
|
const config = await ensureBrowserOS({ skipExtension: true })
|
||||||
|
|
||||||
if (!cachedBrowser || !cachedBrowser.connected) {
|
if (!cachedBrowser || !cachedBrowser.connected) {
|
||||||
cachedBrowser = await puppeteer.connect({
|
cachedBrowser = await puppeteer.connect({
|
||||||
|
|||||||
Reference in New Issue
Block a user