Skip to content

Commit b8ab0d9

Browse files
committed
refactor: use shared tmpdir fixture instead of manual temp-dir lifecycle
Addresses coderabbitai review: switched discovery integration tests to use await using tmpdir() from fixture/fixture.ts for automatic cleanup, matching repository test standards.
1 parent f7f5ca2 commit b8ab0d9

File tree

1 file changed

+19
-16
lines changed

1 file changed

+19
-16
lines changed

packages/opencode/test/mcp/env-var-interpolation.test.ts

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
// altimate_change start — tests for MCP env-var interpolation (closes #656)
22
import { describe, test, expect, beforeEach, afterEach } from "bun:test"
3-
import { mkdtemp, rm, mkdir, writeFile } from "fs/promises"
4-
import { tmpdir } from "os"
3+
import { mkdir, writeFile } from "fs/promises"
54
import path from "path"
65
import { resolveEnvVars } from "../../src/mcp"
6+
import { tmpdir } from "../fixture/fixture"
77

88
// -------------------------------------------------------------------------
99
// resolveEnvVars — safety-net resolver at MCP launch site
@@ -110,24 +110,23 @@ describe("resolveEnvVars", () => {
110110
// -------------------------------------------------------------------------
111111

112112
describe("discoverExternalMcp with env-var interpolation", () => {
113-
let tempDir: string
114113
const ORIGINAL_ENV = { ...process.env }
115114

116-
beforeEach(async () => {
117-
tempDir = await mkdtemp(path.join(tmpdir(), "mcp-envvar-"))
115+
beforeEach(() => {
118116
process.env["TEST_MCP_TOKEN"] = "glpat-secret-token"
119117
process.env["TEST_MCP_HOST"] = "https://gitlab.internal.com"
120118
})
121119

122-
afterEach(async () => {
120+
afterEach(() => {
123121
process.env = { ...ORIGINAL_ENV }
124-
await rm(tempDir, { recursive: true, force: true })
125122
})
126123

127124
test("resolves ${VAR} in discovered .vscode/mcp.json environment", async () => {
128-
await mkdir(path.join(tempDir, ".vscode"), { recursive: true })
125+
await using tmp = await tmpdir()
126+
const dir = tmp.path
127+
await mkdir(path.join(dir, ".vscode"), { recursive: true })
129128
await writeFile(
130-
path.join(tempDir, ".vscode/mcp.json"),
129+
path.join(dir, ".vscode/mcp.json"),
131130
JSON.stringify({
132131
servers: {
133132
gitlab: {
@@ -144,7 +143,7 @@ describe("discoverExternalMcp with env-var interpolation", () => {
144143
)
145144

146145
const { discoverExternalMcp } = await import("../../src/mcp/discover")
147-
const { servers } = await discoverExternalMcp(tempDir)
146+
const { servers } = await discoverExternalMcp(dir)
148147

149148
expect(servers["gitlab"]).toBeDefined()
150149
expect(servers["gitlab"].type).toBe("local")
@@ -155,9 +154,11 @@ describe("discoverExternalMcp with env-var interpolation", () => {
155154
})
156155

157156
test("resolves {env:VAR} in discovered .cursor/mcp.json environment", async () => {
158-
await mkdir(path.join(tempDir, ".cursor"), { recursive: true })
157+
await using tmp = await tmpdir()
158+
const dir = tmp.path
159+
await mkdir(path.join(dir, ".cursor"), { recursive: true })
159160
await writeFile(
160-
path.join(tempDir, ".cursor/mcp.json"),
161+
path.join(dir, ".cursor/mcp.json"),
161162
JSON.stringify({
162163
mcpServers: {
163164
"my-tool": {
@@ -172,17 +173,19 @@ describe("discoverExternalMcp with env-var interpolation", () => {
172173
)
173174

174175
const { discoverExternalMcp } = await import("../../src/mcp/discover")
175-
const { servers } = await discoverExternalMcp(tempDir)
176+
const { servers } = await discoverExternalMcp(dir)
176177

177178
expect(servers["my-tool"]).toBeDefined()
178179
const env = (servers["my-tool"] as any).environment
179180
expect(env.API_KEY).toBe("glpat-secret-token")
180181
})
181182

182183
test("resolves ${VAR:-default} with fallback in discovered config", async () => {
183-
await mkdir(path.join(tempDir, ".vscode"), { recursive: true })
184+
await using tmp = await tmpdir()
185+
const dir = tmp.path
186+
await mkdir(path.join(dir, ".vscode"), { recursive: true })
184187
await writeFile(
185-
path.join(tempDir, ".vscode/mcp.json"),
188+
path.join(dir, ".vscode/mcp.json"),
186189
JSON.stringify({
187190
servers: {
188191
svc: {
@@ -197,7 +200,7 @@ describe("discoverExternalMcp with env-var interpolation", () => {
197200
)
198201

199202
const { discoverExternalMcp } = await import("../../src/mcp/discover")
200-
const { servers } = await discoverExternalMcp(tempDir)
203+
const { servers } = await discoverExternalMcp(dir)
201204

202205
const env = (servers["svc"] as any).environment
203206
expect(env.MODE).toBe("production")

0 commit comments

Comments
 (0)