import { describe, it } from "node:test"; import assert from "node:assert/strict"; import { safeJson } from "../utils"; describe("safeJson", () => { it("parses valid JSON", () => { assert.deepEqual(safeJson('{"a":1}'), { a: 1 }); }); it("parses valid JSON array", () => { assert.deepEqual(safeJson('[1,2,3]'), [1, 2, 3]); }); it("returns null for HTML response", () => { assert.equal(safeJson("error"), null); }); it("returns null for doctype response", () => { assert.equal(safeJson(""), null); }); it("returns null for empty string", () => { assert.equal(safeJson(""), null); }); it("returns null for null input", () => { assert.equal(safeJson(null), null); }); it("returns null for undefined input", () => { assert.equal(safeJson(undefined), null); }); it("returns null for whitespace-only string", () => { assert.equal(safeJson(" \n\t "), null); }); it("returns null for invalid JSON", () => { assert.equal(safeJson("{not json}"), null); }); it("trims whitespace before parsing", () => { assert.deepEqual(safeJson(' {"ok":true} '), { ok: true }); }); it("handles JSON starting with whitespace then HTML", () => { assert.equal(safeJson(" "), null); }); });