import * as Schema from "effect/Schema";import { describe, expect, it } from "vite-plus/test"; import { FilesystemBrowseError } from "./filesystem.ts"; describe("FilesystemBrowseError", () => { it("derives a stable message from browse context while retaining the cause", () => { const cause = new Error("sensitive filesystem detail"); const error = new FilesystemBrowseError({ cwd: "/workspace", partialPath: "./src/mai", failure: "read_directory_failed", parentPath: "/workspace/src", cause, }); expect(error.message).toBe("Failed to browse filesystem path './src/mai' from '/workspace'."); expect(error.message).not.toContain(cause.message); expect(error.cause).toBe(cause); }); it("decodes legacy message-only errors during rolling upgrades", () => { const decodeError = Schema.decodeUnknownSync(FilesystemBrowseError); const error = decodeError({ _tag: "FilesystemBrowseError", message: "Legacy filesystem browse failure.", }); expect(error.message).toBe("Legacy filesystem browse failure."); expect(error.partialPath).toBeUndefined(); expect(error.failure).toBeUndefined(); });});
import * as Schema from "effect/Schema";
import { describe, expect, it } from "vite-plus/test";
import { FilesystemBrowseError } from "./filesystem.ts";
describe("FilesystemBrowseError", () => {
it("derives a stable message from browse context while retaining the cause", () => {
const cause = new Error("sensitive filesystem detail");
const error = new FilesystemBrowseError({
cwd: "/workspace",
partialPath: "./src/mai",
failure: "read_directory_failed",
parentPath: "/workspace/src",
cause,
});
expect(error.message).toBe("Failed to browse filesystem path './src/mai' from '/workspace'.");
expect(error.message).not.toContain(cause.message);
expect(error.cause).toBe(cause);
});
it("decodes legacy message-only errors during rolling upgrades", () => {
const decodeError = Schema.decodeUnknownSync(FilesystemBrowseError);
const error = decodeError({
_tag: "FilesystemBrowseError",
message: "Legacy filesystem browse failure.",
});
expect(error.message).toBe("Legacy filesystem browse failure.");
expect(error.partialPath).toBeUndefined();
expect(error.failure).toBeUndefined();
});
});