diff --git a/scripts/e2e.config.ts b/scripts/e2e.config.ts index 520fc8338d..eed9943263 100644 --- a/scripts/e2e.config.ts +++ b/scripts/e2e.config.ts @@ -18,7 +18,7 @@ const resolved = await Effect.gen(function* () { const path = yield* Path.Path; const env = yield* HostProcess.Environment; const scripts = yield* path.fromFileUrl(new URL(".", import.meta.url)); - const home = path.resolve(scripts, "../.t3/scenarios"); + const home = env.T3_SCENARIO_HOME ?? path.resolve(scripts, "../.t3/scenarios"); // A pooled device reaches this machine over the tailnet, not localhost. const host = yield* run("tailscale", ["ip", "-4"]).pipe( Effect.map((result) => result.stdout.trim().split("\n")[0] ?? ""), @@ -171,15 +171,17 @@ export default { ], cwd: APP_DIR, startupTimeout: 300_000, - log: ".e2e/mobile-app.log", + log: process.env.T3_SCENARIO_APP_LOG ?? ".e2e/mobile-app.log", }, }, }, ], // One server holds every test's state, and a dev stack is heavy. workers: 1, - timeout: 300_000, + timeout: 600_000, assertionTimeout: 15_000, + actionTimeout: 60_000, + cleanupTimeout: 180_000, video: "on", trace: "on", reporters: ["list", "markdown"], diff --git a/scripts/scenarios/start-app.ts b/scripts/scenarios/start-app.ts index 5dee3f26c1..21342a9b42 100644 --- a/scripts/scenarios/start-app.ts +++ b/scripts/scenarios/start-app.ts @@ -75,8 +75,13 @@ const prepareHome = Effect.fn("startApp.prepareHome")(function* (home: string) { driver, { driver, - enabled: false, + enabled: driver === "opencode", ...(driver === "codex" ? { config: { binaryPath: noModel } } : {}), + ...(driver === "opencode" ? {environment: [ + {name: "XDG_CONFIG_HOME", value: path.join(home, "opencode-config"), sensitive: false}, + {name: "XDG_DATA_HOME", value: path.join(home, "opencode-data"), sensitive: false}, + {name: "OPENCODE_CONFIG_CONTENT", value: '{"enabled_providers":["control","proof"],"provider":{"control":{"npm":"@ai-sdk/openai-compatible","name":"Control catalog","options":{"baseURL":"http://127.0.0.1:9/v1","apiKey":"synthetic"},"models":{"control":{"name":"Control Model","limit":{"context":32000,"output":4000}}}}}}', sensitive: false}, + ]} : {}), }, ]), ),