summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorVladimir Glafirov <[email protected]>2026-01-13 22:23:41 +0100
committerGitHub <[email protected]>2026-01-13 15:23:41 -0600
commit452f11ff77bcb8f554be0d2e364382030e7ab39d (patch)
tree23ab1804eda7565909112a23effac6ca37ead30c
parent774c24e76ed96769b304d3ce5acb8440fcf7f3c9 (diff)
downloadopencode-452f11ff77bcb8f554be0d2e364382030e7ab39d.tar.gz
opencode-452f11ff77bcb8f554be0d2e364382030e7ab39d.zip
fix: Add Plugin Mocks to Provider Tests (#8276)
-rw-r--r--packages/opencode/src/provider/provider.ts16
-rw-r--r--packages/opencode/test/provider/provider.test.ts24
2 files changed, 30 insertions, 10 deletions
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index 9bde1333e..010b7de80 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -1,6 +1,4 @@
import z from "zod"
-import path from "path"
-import os from "os"
import fuzzysort from "fuzzysort"
import { Config } from "../config/config"
import { mapValues, mergeDeep, omit, pickBy, sortBy } from "remeda"
@@ -605,13 +603,13 @@ export namespace Provider {
},
experimentalOver200K: model.cost?.context_over_200k
? {
- cache: {
- read: model.cost.context_over_200k.cache_read ?? 0,
- write: model.cost.context_over_200k.cache_write ?? 0,
- },
- input: model.cost.context_over_200k.input,
- output: model.cost.context_over_200k.output,
- }
+ cache: {
+ read: model.cost.context_over_200k.cache_read ?? 0,
+ write: model.cost.context_over_200k.cache_write ?? 0,
+ },
+ input: model.cost.context_over_200k.input,
+ output: model.cost.context_over_200k.output,
+ }
: undefined,
},
limit: {
diff --git a/packages/opencode/test/provider/provider.test.ts b/packages/opencode/test/provider/provider.test.ts
index f6d2df9dd..8a2009646 100644
--- a/packages/opencode/test/provider/provider.test.ts
+++ b/packages/opencode/test/provider/provider.test.ts
@@ -1,5 +1,27 @@
-import { test, expect } from "bun:test"
+import { test, expect, mock } from "bun:test"
import path from "path"
+
+// Mock BunProc and default plugins to prevent actual installations during tests
+mock.module("../../src/bun/index", () => ({
+ BunProc: {
+ install: async (pkg: string, _version?: string) => {
+ // Return package name without version for mocking
+ const lastAtIndex = pkg.lastIndexOf("@")
+ return lastAtIndex > 0 ? pkg.substring(0, lastAtIndex) : pkg
+ },
+ run: async () => {
+ throw new Error("BunProc.run should not be called in tests")
+ },
+ which: () => process.execPath,
+ InstallFailedError: class extends Error {},
+ },
+}))
+
+const mockPlugin = () => ({})
+mock.module("opencode-copilot-auth", () => ({ default: mockPlugin }))
+mock.module("opencode-anthropic-auth", () => ({ default: mockPlugin }))
+mock.module("@gitlab/opencode-gitlab-auth", () => ({ default: mockPlugin }))
+
import { tmpdir } from "../fixture/fixture"
import { Instance } from "../../src/project/instance"
import { Provider } from "../../src/provider/provider"