diff options
Diffstat (limited to 'src/features/surface-host/logic/table.test.ts')
| -rw-r--r-- | src/features/surface-host/logic/table.test.ts | 78 |
1 files changed, 39 insertions, 39 deletions
diff --git a/src/features/surface-host/logic/table.test.ts b/src/features/surface-host/logic/table.test.ts index e55b3f7..6fb558a 100644 --- a/src/features/surface-host/logic/table.test.ts +++ b/src/features/surface-host/logic/table.test.ts @@ -2,46 +2,46 @@ import { describe, expect, it } from "vitest"; import { parseTablePayload } from "./table"; describe("parseTablePayload", () => { - it("parses a well-formed table payload", () => { - const data = parseTablePayload({ - columns: ["Name", "Version"], - rows: [ - ["alpha", "1.0"], - ["beta", "2.3"], - ], - }); - expect(data).toEqual({ - columns: ["Name", "Version"], - rows: [ - ["alpha", "1.0"], - ["beta", "2.3"], - ], - }); - }); + it("parses a well-formed table payload", () => { + const data = parseTablePayload({ + columns: ["Name", "Version"], + rows: [ + ["alpha", "1.0"], + ["beta", "2.3"], + ], + }); + expect(data).toEqual({ + columns: ["Name", "Version"], + rows: [ + ["alpha", "1.0"], + ["beta", "2.3"], + ], + }); + }); - it("coerces numeric and boolean cells to strings", () => { - const data = parseTablePayload({ - columns: ["k", "n", "b"], - rows: [["x", 42, true]], - }); - expect(data?.rows[0]).toEqual(["x", "42", "true"]); - }); + it("coerces numeric and boolean cells to strings", () => { + const data = parseTablePayload({ + columns: ["k", "n", "b"], + rows: [["x", 42, true]], + }); + expect(data?.rows[0]).toEqual(["x", "42", "true"]); + }); - it("accepts an empty rows array", () => { - expect(parseTablePayload({ columns: ["A"], rows: [] })).toEqual({ columns: ["A"], rows: [] }); - }); + it("accepts an empty rows array", () => { + expect(parseTablePayload({ columns: ["A"], rows: [] })).toEqual({ columns: ["A"], rows: [] }); + }); - it.each([ - ["null", null], - ["a number", 7], - ["a string", "nope"], - ["missing columns", { rows: [] }], - ["missing rows", { columns: ["A"] }], - ["non-string column", { columns: [1], rows: [] }], - ["row that is not an array", { columns: ["A"], rows: ["x"] }], - ["cell of unsupported type", { columns: ["A"], rows: [[{ nested: true }]] }], - ["non-finite numeric cell", { columns: ["A"], rows: [[Number.NaN]] }], - ])("returns null for invalid payload: %s", (_label, payload) => { - expect(parseTablePayload(payload)).toBeNull(); - }); + it.each([ + ["null", null], + ["a number", 7], + ["a string", "nope"], + ["missing columns", { rows: [] }], + ["missing rows", { columns: ["A"] }], + ["non-string column", { columns: [1], rows: [] }], + ["row that is not an array", { columns: ["A"], rows: ["x"] }], + ["cell of unsupported type", { columns: ["A"], rows: [[{ nested: true }]] }], + ["non-finite numeric cell", { columns: ["A"], rows: [[Number.NaN]] }], + ])("returns null for invalid payload: %s", (_label, payload) => { + expect(parseTablePayload(payload)).toBeNull(); + }); }); |
