import { test } from "node:test"; import assert from "node:assert/strict"; import { add, complete, remove, format } from "../src/todo.js"; test("add appends an open todo", () => { const todos = add([], "buy milk"); assert.deepEqual(todos, [{ id: 1, text: "buy milk", done: false }]); }); test("complete marks only the matching todo", () => { const todos = complete(add(add([], "a"), "b"), 2); assert.equal(todos[0].done, false); assert.equal(todos[1].done, true); }); test("remove drops the matching todo", () => { const todos = remove(add(add([], "a"), "b"), 1); assert.deepEqual(todos.map((t) => t.text), ["b"]); }); test("format renders an empty list", () => { assert.equal(format([]), "Nothing to do."); });