Aiden Cline 2 недель назад
Родитель
Сommit
f74c0339cc
1 измененных файлов с 51 добавлено и 43 удалено
  1. 51 43
      packages/opencode/test/session/prompt-variant.test.ts

+ 51 - 43
packages/opencode/test/session/prompt-variant.test.ts

@@ -6,55 +6,63 @@ import { tmpdir } from "../fixture/fixture"
 
 describe("session.prompt agent variant", () => {
   test("applies agent variant only when using agent model", async () => {
-    await using tmp = await tmpdir({
-      git: true,
-      config: {
-        agent: {
-          build: {
-            model: "openai/gpt-5.2",
-            variant: "xhigh",
+    const prev = process.env.OPENAI_API_KEY
+    process.env.OPENAI_API_KEY = "test-openai-key"
+
+    try {
+      await using tmp = await tmpdir({
+        git: true,
+        config: {
+          agent: {
+            build: {
+              model: "openai/gpt-5.2",
+              variant: "xhigh",
+            },
           },
         },
-      },
-    })
+      })
 
-    await Instance.provide({
-      directory: tmp.path,
-      fn: async () => {
-        const session = await Session.create({})
+      await Instance.provide({
+        directory: tmp.path,
+        fn: async () => {
+          const session = await Session.create({})
 
-        const other = await SessionPrompt.prompt({
-          sessionID: session.id,
-          agent: "build",
-          model: { providerID: "opencode", modelID: "kimi-k2.5-free" },
-          noReply: true,
-          parts: [{ type: "text", text: "hello" }],
-        })
-        if (other.info.role !== "user") throw new Error("expected user message")
-        expect(other.info.variant).toBeUndefined()
+          const other = await SessionPrompt.prompt({
+            sessionID: session.id,
+            agent: "build",
+            model: { providerID: "opencode", modelID: "kimi-k2.5-free" },
+            noReply: true,
+            parts: [{ type: "text", text: "hello" }],
+          })
+          if (other.info.role !== "user") throw new Error("expected user message")
+          expect(other.info.variant).toBeUndefined()
 
-        const match = await SessionPrompt.prompt({
-          sessionID: session.id,
-          agent: "build",
-          noReply: true,
-          parts: [{ type: "text", text: "hello again" }],
-        })
-        if (match.info.role !== "user") throw new Error("expected user message")
-        expect(match.info.model).toEqual({ providerID: "openai", modelID: "gpt-5.2" })
-        expect(match.info.variant).toBe("xhigh")
+          const match = await SessionPrompt.prompt({
+            sessionID: session.id,
+            agent: "build",
+            noReply: true,
+            parts: [{ type: "text", text: "hello again" }],
+          })
+          if (match.info.role !== "user") throw new Error("expected user message")
+          expect(match.info.model).toEqual({ providerID: "openai", modelID: "gpt-5.2" })
+          expect(match.info.variant).toBe("xhigh")
 
-        const override = await SessionPrompt.prompt({
-          sessionID: session.id,
-          agent: "build",
-          noReply: true,
-          variant: "high",
-          parts: [{ type: "text", text: "hello third" }],
-        })
-        if (override.info.role !== "user") throw new Error("expected user message")
-        expect(override.info.variant).toBe("high")
+          const override = await SessionPrompt.prompt({
+            sessionID: session.id,
+            agent: "build",
+            noReply: true,
+            variant: "high",
+            parts: [{ type: "text", text: "hello third" }],
+          })
+          if (override.info.role !== "user") throw new Error("expected user message")
+          expect(override.info.variant).toBe("high")
 
-        await Session.remove(session.id)
-      },
-    })
+          await Session.remove(session.id)
+        },
+      })
+    } finally {
+      if (prev === undefined) delete process.env.OPENAI_API_KEY
+      else process.env.OPENAI_API_KEY = prev
+    }
   })
 })