test.coordination/core/predicates/file.predicate.test.ts

test.coordination/core/predicates/file.predicate.test.ts is a file in Codebase Testing. 29 lines of code and 0 definitions.

import { describe, it } from "vitest";
import {
    hasErrorCode,
    isFilesystemRefusal,
    isUnreadableJson,
} from "coordination-surface/tools/core/predicates/file.predicate.ts";
import assert from "node:assert/strict";

const coded = function coded(code: unknown): Error {
    return Object.assign(new Error("probe"), { code });
};

describe("hasErrorCode", () => {
    it("answers true only for an error whose string code is in the set", () => {
        const codes = new Set(["ENOENT"]);
        assert.equal(hasErrorCode(coded("ENOENT"), codes), true);
        assert.equal(hasErrorCode(coded("EPERM"), codes), false);
        assert.equal(hasErrorCode(coded(2), codes), false);
        assert.equal(hasErrorCode(new Error("no code"), codes), false);
        assert.equal(hasErrorCode({ code: "ENOENT" }, codes), false);
    });
});

describe("isFilesystemRefusal and isUnreadableJson", () => {
    it("accepts a filesystem refusal and, for JSON, a parse failure, and rejects any other error", () => {
        assert.equal(isFilesystemRefusal(coded("ENOENT")), true);
        assert.equal(isFilesystemRefusal(new TypeError("bug")), false);
        assert.equal(isUnreadableJson(new SyntaxError("bad json")), true);
        assert.equal(isUnreadableJson(coded("EACCES")), true);
        assert.equal(isUnreadableJson(new TypeError("bug")), false);
    });
});