import assert from "node:assert/strict"; import { afterEach, describe, it, mock, } from "node:test"; import { getCheckedBoxes } from "./getCheckedBoxes"; describe("getCheckedBoxes", () => { afterEach(() => { document.body.innerHTML = ""; mock.restoreAll(); }); it("returns checked inputs from NodeList", () => { document.body.innerHTML = `
`; const list = document.querySelectorAll("input"); const result = getCheckedBoxes(list); assert.strictEqual(result.length, 2); assert.strictEqual(result[0]?.name, "one"); assert.strictEqual(result[1]?.value, "b"); }); it("filters checked inputs by selector", () => { document.body.innerHTML = ` `; const list = document.querySelectorAll("input"); const result = getCheckedBoxes(list, `[type="radio"]`); assert.strictEqual(result.length, 1); assert.strictEqual(result[0]?.type, "radio"); }); it("returns empty array and logs error for invalid selector", () => { document.body.innerHTML = ` `; const errorSpy = mock.method(console, "error", () => {}); const list = document.querySelectorAll("input"); const result = getCheckedBoxes(list, `"[type="radio"]`); assert.strictEqual(result.length, 0); assert.strictEqual(errorSpy.mock.calls.length, 1); }); });