diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-03-09 01:12:48 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-03-09 01:12:48 +0000 |
| commit | f9d2056f4d10fe7dde71f5d17d8e8c473b3a611f (patch) | |
| tree | 9913fa942b2c4071887338bbed98da50a9d53c9a /web/test/sort-tasks.test.mjs | |
| parent | 1b4be14d02d3fd17beeddcce8d5056d51b19296c (diff) | |
web: sort Done/Interrupted tabs newest-first and filter Done tab by 24h
Updated sortTasksByDate to support descending sort. Changed renderTaskList to use descending sort for Done and Interrupted tabs. Updated filterTasksByTab to hide Done tasks older than 24 hours by default. Updated frontend tests to match new behavior.
Diffstat (limited to 'web/test/sort-tasks.test.mjs')
| -rw-r--r-- | web/test/sort-tasks.test.mjs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/web/test/sort-tasks.test.mjs b/web/test/sort-tasks.test.mjs index fe47702..4d98f20 100644 --- a/web/test/sort-tasks.test.mjs +++ b/web/test/sort-tasks.test.mjs @@ -12,12 +12,13 @@ import assert from 'node:assert/strict'; // ── Implementation under contract ───────────────────────────────────────────── // Remove this block once sortTasksByDate is available from app.js. -function sortTasksByDate(tasks) { +function sortTasksByDate(tasks, descend = false) { return [...tasks].sort((a, b) => { if (!a.created_at && !b.created_at) return 0; if (!a.created_at) return 1; if (!b.created_at) return -1; - return new Date(a.created_at) - new Date(b.created_at); + const diff = new Date(a.created_at) - new Date(b.created_at); + return descend ? -diff : diff; }); } @@ -42,6 +43,18 @@ describe('sortTasksByDate', () => { assert.equal(result[2].id, 'c', 'newest should be last'); }); + it('sorts tasks newest-first when descend=true', () => { + const tasks = [ + makeTask('c', '2026-03-06T12:00:00Z'), + makeTask('a', '2026-03-04T08:00:00Z'), + makeTask('b', '2026-03-05T10:00:00Z'), + ]; + const result = sortTasksByDate(tasks, true); + assert.equal(result[0].id, 'c', 'newest should be first'); + assert.equal(result[1].id, 'b'); + assert.equal(result[2].id, 'a', 'oldest should be last'); + }); + it('returns a new array (does not mutate input)', () => { const tasks = [ makeTask('b', '2026-03-05T10:00:00Z'), |
