summaryrefslogtreecommitdiffhomepage
path: root/packages/opencode/test/server/httpapi-mcp.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/opencode/test/server/httpapi-mcp.test.ts')
-rw-r--r--packages/opencode/test/server/httpapi-mcp.test.ts48
1 files changed, 48 insertions, 0 deletions
diff --git a/packages/opencode/test/server/httpapi-mcp.test.ts b/packages/opencode/test/server/httpapi-mcp.test.ts
new file mode 100644
index 000000000..3da1dc933
--- /dev/null
+++ b/packages/opencode/test/server/httpapi-mcp.test.ts
@@ -0,0 +1,48 @@
+import { afterEach, describe, expect, test } from "bun:test"
+import { Context } from "effect"
+import { ExperimentalHttpApiServer } from "../../src/server/routes/instance/httpapi/server"
+import { McpPaths } from "../../src/server/routes/instance/httpapi/mcp"
+import { Instance } from "../../src/project/instance"
+import { Log } from "../../src/util"
+import { resetDatabase } from "../fixture/db"
+import { tmpdir } from "../fixture/fixture"
+
+void Log.init({ print: false })
+
+const context = Context.empty() as Context.Context<unknown>
+
+function request(route: string, directory: string) {
+ return ExperimentalHttpApiServer.webHandler().handler(
+ new Request(`http://localhost${route}`, {
+ headers: {
+ "x-opencode-directory": directory,
+ },
+ }),
+ context,
+ )
+}
+
+afterEach(async () => {
+ await Instance.disposeAll()
+ await resetDatabase()
+})
+
+describe("mcp HttpApi", () => {
+ test("serves status endpoint", async () => {
+ await using tmp = await tmpdir({
+ config: {
+ mcp: {
+ demo: {
+ type: "local",
+ command: ["echo", "demo"],
+ enabled: false,
+ },
+ },
+ },
+ })
+
+ const response = await request(McpPaths.status, tmp.path)
+ expect(response.status).toBe(200)
+ expect(await response.json()).toEqual({ demo: { status: "disabled" } })
+ })
+})