| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- import { expect, test } from "bun:test"
- import { ConfigProvider, Effect, FileSystem, Layer } from "effect"
- import { DriveManifest } from "../src/manifest"
- test("loads and validates a Drive manifest through Effect services", async () => {
- const manifest = await Effect.runPromise(
- DriveManifest.resolve().pipe(
- Effect.provide(
- Layer.merge(
- FileSystem.layerNoop({
- readFileString: () =>
- Effect.succeed(
- JSON.stringify({
- endpoints: {
- ui: "ws://127.0.0.1:41000",
- backend: "ws://127.0.0.1:41050",
- },
- viewport: { cols: 120, rows: 50 },
- recording: { timeline: "/tmp/drive/timeline.jsonl" },
- }),
- ),
- }),
- ConfigProvider.layer(
- ConfigProvider.fromUnknown({
- OPENCODE_DRIVE: "test-instance",
- DRIVE_REGISTRY_DIR: "/tmp/drive",
- }),
- ),
- ),
- ),
- ),
- )
- expect(manifest).toEqual({
- endpoints: {
- ui: "ws://127.0.0.1:41000",
- backend: "ws://127.0.0.1:41050",
- },
- viewport: { cols: 120, rows: 50 },
- recording: { timeline: "/tmp/drive/timeline.jsonl" },
- })
- })
- test("reports schema-invalid manifests as typed decode failures", async () => {
- const error = await Effect.runPromise(
- DriveManifest.resolve().pipe(
- Effect.flip,
- Effect.provide(
- Layer.merge(
- FileSystem.layerNoop({
- readFileString: () =>
- Effect.succeed(
- JSON.stringify({
- endpoints: {
- ui: "https://example.com",
- backend: "ws://127.0.0.1:41050",
- },
- }),
- ),
- }),
- ConfigProvider.layer(
- ConfigProvider.fromUnknown({
- OPENCODE_DRIVE: "test-instance",
- DRIVE_REGISTRY_DIR: "/tmp/drive",
- }),
- ),
- ),
- ),
- ),
- )
- expect(error).toBeInstanceOf(DriveManifest.ResolveError)
- expect(error.reason).toBe("decode")
- })
|