diff --git a/packages/opencode/test/file/fsmonitor.test.ts b/packages/opencode/test/file/fsmonitor.test.ts
index 1149fb8bb5..699e713c22 100644
--- a/packages/opencode/test/file/fsmonitor.test.ts
+++ b/packages/opencode/test/file/fsmonitor.test.ts
@@ -5,10 +5,12 @@ import fs from "fs/promises"
import path from "path"
import { File } from "../../src/file"
import { Instance } from "../../src/project/instance"
-import { tmpdir } from "../fixture/fixture"
+import { provideInstance, tmpdir } from "../fixture/fixture"
-const status = () => Effect.runPromise(File.Service.use((svc) => svc.status()))
-const read = (file: string) => Effect.runPromise(File.Service.use((svc) => svc.read(file)))
+const run = (eff: Effect.Effect) =>
+ Effect.runPromise(provideInstance(Instance.directory)(eff.pipe(Effect.provide(File.defaultLayer))))
+const status = () => run(File.Service.use((svc) => svc.status()))
+const read = (file: string) => run(File.Service.use((svc) => svc.read(file)))
const wintest = process.platform === "win32" ? test : test.skip
diff --git a/packages/opencode/test/file/index.test.ts b/packages/opencode/test/file/index.test.ts
index 50bcbea783..d8203ac12d 100644
--- a/packages/opencode/test/file/index.test.ts
+++ b/packages/opencode/test/file/index.test.ts
@@ -6,18 +6,20 @@ import fs from "fs/promises"
import { File } from "../../src/file"
import { Instance } from "../../src/project/instance"
import { Filesystem } from "../../src/util/filesystem"
-import { tmpdir } from "../fixture/fixture"
+import { provideInstance, tmpdir } from "../fixture/fixture"
afterEach(async () => {
await Instance.disposeAll()
})
-const init = () => Effect.runPromise(File.Service.use((svc) => svc.init()))
-const status = () => Effect.runPromise(File.Service.use((svc) => svc.status()))
-const read = (file: string) => Effect.runPromise(File.Service.use((svc) => svc.read(file)))
-const list = (dir?: string) => Effect.runPromise(File.Service.use((svc) => svc.list(dir)))
+const init = () => run(File.Service.use((svc) => svc.init()))
+const run = (eff: Effect.Effect) =>
+ Effect.runPromise(provideInstance(Instance.directory)(eff.pipe(Effect.provide(File.defaultLayer))))
+const status = () => run(File.Service.use((svc) => svc.status()))
+const read = (file: string) => run(File.Service.use((svc) => svc.read(file)))
+const list = (dir?: string) => run(File.Service.use((svc) => svc.list(dir)))
const search = (input: { query: string; limit?: number; dirs?: boolean; type?: "file" | "directory" }) =>
- Effect.runPromise(File.Service.use((svc) => svc.search(input)))
+ run(File.Service.use((svc) => svc.search(input)))
describe("file/index Filesystem patterns", () => {
describe("read() - text content", () => {
diff --git a/packages/opencode/test/file/path-traversal.test.ts b/packages/opencode/test/file/path-traversal.test.ts
index 322485263d..1f2e45a6ad 100644
--- a/packages/opencode/test/file/path-traversal.test.ts
+++ b/packages/opencode/test/file/path-traversal.test.ts
@@ -5,10 +5,12 @@ import fs from "fs/promises"
import { Filesystem } from "../../src/util/filesystem"
import { File } from "../../src/file"
import { Instance } from "../../src/project/instance"
-import { tmpdir } from "../fixture/fixture"
+import { provideInstance, tmpdir } from "../fixture/fixture"
-const read = (file: string) => Effect.runPromise(File.Service.use((svc) => svc.read(file)))
-const list = (dir?: string) => Effect.runPromise(File.Service.use((svc) => svc.list(dir)))
+const run = (eff: Effect.Effect) =>
+ Effect.runPromise(provideInstance(Instance.directory)(eff.pipe(Effect.provide(File.defaultLayer))))
+const read = (file: string) => run(File.Service.use((svc) => svc.read(file)))
+const list = (dir?: string) => run(File.Service.use((svc) => svc.list(dir)))
describe("Filesystem.contains", () => {
test("allows paths within project", () => {