Initial commit: demo todo CLI with Claude Code setup
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
10 files changed
+193
No files matched your search
@@ -0,0 +1,23 @@
|
||||
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.");
|
||||
});
|
||||
Reference in new issue
Block a user