extract-tasks-body.test.mjs
29 lines 1.1 KB
Raw
sha256:fd47ab66017e55331b88ba3a59c34c23e4e05c5aec424251d3a404c5a7998c8e feat(hub): restore integration tile detail modals; add Herm… Human minor ⚠ breaking 15 days ago
1 /**
2 * Unit tests for `extractCheckboxTasksFromBody` (shared local + hosted).
3 */
4
5 import { describe, it } from 'node:test';
6 import assert from 'node:assert/strict';
7 import { extractCheckboxTasksFromBody } from '../lib/extract-tasks.mjs';
8
9 describe('extractCheckboxTasksFromBody', () => {
10 it('parses open and done lines with path and line numbers', () => {
11 const body = 'intro\n- [ ] Open item\n - [x] Done item\n';
12 const all = extractCheckboxTasksFromBody(body, { path: 'n.md', status: 'all' });
13 assert.equal(all.length, 2);
14 assert.deepEqual(
15 all.map((t) => ({ text: t.text, line: t.line, status: t.status, path: t.path })),
16 [
17 { text: 'Open item', line: 2, status: 'open', path: 'n.md' },
18 { text: 'Done item', line: 3, status: 'done', path: 'n.md' },
19 ]
20 );
21 });
22
23 it('respects status filter', () => {
24 const body = '- [ ] A\n- [x] B\n';
25 const openOnly = extractCheckboxTasksFromBody(body, { path: 'p.md', status: 'open' });
26 assert.equal(openOnly.length, 1);
27 assert.equal(openOnly[0].text, 'A');
28 });
29 });
File History 3 commits
sha256:fd47ab66017e55331b88ba3a59c34c23e4e05c5aec424251d3a404c5a7998c8e feat(hub): restore integration tile detail modals; add Herm… Human minor 15 days ago
sha256:2827ba9e7632a4b141c50caf1e8f7d77abbc3515be20e7465f2bccb0ac4edf91 fix: repair endpoint now sets has_active_subscription when … Human minor 15 days ago