diff --git a/packages/opencode/test/session/compaction.test.ts b/packages/opencode/test/session/compaction.test.ts index 63276bfe197..d11d51409a0 100644 --- a/packages/opencode/test/session/compaction.test.ts +++ b/packages/opencode/test/session/compaction.test.ts @@ -27,7 +27,7 @@ import type { Provider } from "@/provider/provider" import * as SessionProcessorModule from "../../src/session/processor" import { Snapshot } from "../../src/snapshot" import { ProviderTest } from "../fake/provider" -import { testEffect } from "../lib/effect" +import { awaitWithTimeout, testEffect } from "../lib/effect" import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" import { TestConfig } from "../fixture/config" import { RuntimeFlags } from "@/effect/runtime-flags" @@ -1250,15 +1250,15 @@ describe("session.compaction.process", () => { }) .pipe(Effect.forkChild) - yield* Deferred.await(ready).pipe(Effect.timeout("1 second")) - const start = Date.now() - yield* Fiber.interrupt(fiber) - const exit = yield* Fiber.await(fiber).pipe(Effect.timeout("250 millis")) + yield* awaitWithTimeout(Deferred.await(ready), "timed out waiting for compaction retry", "10 seconds") + const exit = yield* Effect.gen(function* () { + yield* Fiber.interrupt(fiber) + return yield* Fiber.await(fiber) + }).pipe(Effect.timeout("1 second")) expect(Exit.isFailure(exit)).toBe(true) if (Exit.isFailure(exit)) { expect(Cause.hasInterrupts(exit.cause)).toBe(true) - expect(Date.now() - start).toBeLessThan(250) } }).pipe(withCompaction({ llm: stub.layer })) },