test.govlab/quality/core/predicates/context.fragment.predicate.test.ts

test.govlab/quality/core/predicates/context.fragment.predicate.test.ts is a file in Codebase Testing. 34 lines of code and 0 definitions.

import {
    isArray,
    isDefineFragmentCall,
    isNode,
    isRecord,
    isRuleNode,
} from "@govlab/quality/core/predicates/context.fragment.predicate.ts";
import assert from "node:assert/strict";
import { test } from "vitest";

test("isRecord accepts objects and rejects null and primitives", () => {
    assert.equal(isRecord({}), true);
    assert.equal(isRecord(null), false);
    assert.equal(isRecord("x"), false);
});

test("isNode and isRuleNode narrow AST-like values", () => {
    assert.equal(isNode({ type: "Identifier" }), true);
    assert.equal(isNode(null), false);
    assert.equal(isNode({}), false);
    assert.equal(isRuleNode({ type: "Literal" }), true);
});

test("isArray narrows arrays only", () => {
    assert.equal(isArray([]), true);
    assert.equal(isArray({ length: 0 }), false);
});

test("isDefineFragmentCall recognizes the fragment factory call", () => {
    assert.equal(
        isDefineFragmentCall({ callee: { name: "defineContextFragment", type: "Identifier" }, type: "CallExpression" }),
        true,
    );
    assert.equal(
        isDefineFragmentCall({ callee: { name: "other", type: "Identifier" }, type: "CallExpression" }),
        false,
    );
});