test.govlab/quality/core/parsers/record.parser.test.ts
test.govlab/quality/core/parsers/record.parser.test.ts is a file in Codebase Testing. 22 lines of code and 0 definitions.
import { expect, test } from "vitest";
import {
jsonArray,
jsonRecord,
jsonRecordsAt,
jsonRecordsFlexible,
objectEntriesAt,
parseJsonRecords,
} from "@govlab/quality/core/parsers/record.parser.ts";
test("the JSON readers keep only records, and read text that is not JSON as nothing, since a tool may print a notice", () => {
expect(parseJsonRecords('[{"a":1},2]')).toStrictEqual([{ a: 1 }]);
expect(parseJsonRecords(" ")).toStrictEqual([]);
expect(parseJsonRecords("nope")).toStrictEqual([]);
expect(jsonRecordsAt('{"items":[{"a":1},"x"]}', "items")).toStrictEqual([{ a: 1 }]);
expect(jsonRecord('{"a":1}')).toStrictEqual({ a: 1 });
expect(jsonRecord("[1]")).toStrictEqual({});
expect(jsonRecordsFlexible('{"a":1}')).toStrictEqual([{ a: 1 }]);
expect(jsonRecordsFlexible('[{"a":1}]')).toStrictEqual([{ a: 1 }]);
expect(jsonArray("[1,2]")).toStrictEqual([1, 2]);
expect(jsonArray('{"a":1}')).toStrictEqual([]);
expect(objectEntriesAt('{"files":{"a.ts":{"n":1},"b.ts":2}}', "files")).toStrictEqual([["a.ts", { n: 1 }]]);
});