import { describe, expect, it } from "vitest"; import { compareRecordValues } from "./record-query"; describe("scalar record ordering", () => { it("keeps numeric values together and defines a transitive mixed-field order", () => { const values = ["2", 10, null, false, -2, "A", 0.5, "a", 2, undefined]; // Array.sort moves undefined entries itself; collection records wrap the values. const rows = values.map((value) => ({ value })); const sorted = rows .sort((a, b) => compareRecordValues(a.value, b.value)) .map((row) => row.value); expect(sorted).toEqual([-2, 0.5, 2, 10, null, undefined, "2", "A", "a", false]); expect(compareRecordValues(null, "")).toBe(0); expect(compareRecordValues(undefined, "")).toBe(0); expect(compareRecordValues(2, 10)).toBeLessThan(0); }); });