diff --git a/packages/opencode/test/session/compaction.test.ts b/packages/opencode/test/session/compaction.test.ts index 6aca646df1..8570ee3991 100644 --- a/packages/opencode/test/session/compaction.test.ts +++ b/packages/opencode/test/session/compaction.test.ts @@ -1202,48 +1202,37 @@ describe("session.compaction.process", () => { { git: true }, ) - test("allows plugins to disable synthetic continue prompt", async () => { - await using tmp = await tmpdir() - await WithInstance.provide({ - directory: tmp.path, - fn: async () => { - const session = await svc.create({}) - const msg = await user(session.id, "hello") - const rt = runtime("continue", autocontinue(false), wide()) - try { - const msgs = await svc.messages({ sessionID: session.id }) - const result = await rt.runPromise( - SessionCompaction.Service.use((svc) => - svc.process({ - parentID: msg.id, - messages: msgs, - sessionID: session.id, - auto: true, - }), - ), - ) + itProcess.instance( + "allows plugins to disable synthetic continue prompt", + Effect.gen(function* () { + const ssn = yield* SessionNs.Service + const session = yield* ssn.create({}) + const msg = yield* createUserMessage(session.id, "hello") + const msgs = yield* ssn.messages({ sessionID: session.id }) - const all = await svc.messages({ sessionID: session.id }) - const last = all.at(-1) + const result = yield* SessionCompaction.use.process({ + parentID: msg.id, + messages: msgs, + sessionID: session.id, + auto: true, + }) - expect(result).toBe("continue") - expect(last?.info.role).toBe("assistant") - expect( - all.some( - (msg) => - msg.info.role === "user" && - msg.parts.some( - (part) => - part.type === "text" && part.synthetic && part.text.includes("Continue if you have next steps"), - ), + const all = yield* ssn.messages({ sessionID: session.id }) + const last = all.at(-1) + + expect(result).toBe("continue") + expect(last?.info.role).toBe("assistant") + expect( + all.some( + (msg) => + msg.info.role === "user" && + msg.parts.some( + (part) => part.type === "text" && part.synthetic && part.text.includes("Continue if you have next steps"), ), - ).toBe(false) - } finally { - await rt.dispose() - } - }, - }) - }) + ), + ).toBe(false) + }).pipe(Effect.provide(compactionProcessLayer({ plugin: autocontinue(false) }))), + ) it.instance( "replays the prior user turn on overflow when earlier context exists",