summaryrefslogtreecommitdiff
path: root/web/test/sort-tasks.test.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'web/test/sort-tasks.test.mjs')
-rw-r--r--web/test/sort-tasks.test.mjs17
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'),