test(file): provide file service in tests

This commit is contained in:
Kit Langton
2026-04-13 13:00:43 -04:00
parent 908fa7d058
commit c97ac8f71c
3 changed files with 18 additions and 12 deletions

View File

@@ -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 = <A, E>(eff: Effect.Effect<A, E, File.Service>) =>
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

View File

@@ -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 = <A, E>(eff: Effect.Effect<A, E, File.Service>) =>
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", () => {

View File

@@ -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 = <A, E>(eff: Effect.Effect<A, E, File.Service>) =>
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", () => {