summaryrefslogtreecommitdiff
path: root/web/test/tasks-board.test.mjs
AgeCommit message (Collapse)Author
10 daysfeat(web): add ensureTaskLogStream and taskLogStreams for task card log ↵Claudomator Agent
streaming (task 6) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
10 daysfeat(web): add cardContentSignature to skip log-tail in render dedup (task 5)Claudomator Agent
Prevents renderTasksIntoContainer from tearing down and rebuilding a task card on every poll tick just because its .task-log-tail has accumulated streamed log lines. Exports cardContentSignature which walks the card element tree and returns a stable fingerprint that ignores .task-log-tail and .running-log subtrees. Also preserves the existing log-tail node across a real content-change swap so live EventSource streams survive. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
11 daysfix(web): correct elapsed timer class/location, log-tail coverage, and tests ↵Claudomator Agent
(task 4 reviewer findings) - Move elapsed timer span from card header to after meta block; add task-elapsed class alongside running-elapsed (Finding 1) - Replace PENDING/QUEUED-only log-tail div with full if/else: placeholder div.task-log-tail-placeholder for queue states, div.task-log-tail with dataset.logTarget for all other states (Finding 2) - Delete web/test/task-card-di.test.mjs; append correct tests to web/test/tasks-board.test.mjs covering log-tail and elapsed timer contracts (Finding 3) - Thread doc parameter through createEditForm, renderSubtaskRollup, and renderQuestionFooter so createTaskCard is fully testable without a browser DOM Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
11 daysfix(web): reviewer findings on Tasks board column model (task 1)Claudomator Agent
Finding 1 (Important): replace inline per-column sort comparators in groupTasksByColumn with calls to the existing sortTasksByDate(tasks, descend) helper. The old inline code fell back to epoch 0 for missing created_at, sorting dateless tasks FIRST in ascending columns — diverging from the rest of the codebase's convention (sortTasksByDate puts them LAST). Add two new tests asserting that a task with no created_at sorts LAST in both an ascending column (queue) and a descending column (interrupted). Finding 2 (Important): revert web/test/tab-persistence.test.mjs — the two 'stories' assertions introduced in 54be094 were out of Task 1's scope and belong to Task 2. Restore the original 'queue' assertions so commit messages accurately reflect their contents; Task 2 will re-apply the fix intentionally. Finding 3 (Minor): add the missing state-list uniqueness assertion to the 'every column key is unique' test: assert.equal(new Set(allStates).size, allStates.length) so a state appearing in two columns is caught. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
11 daysfeat(web): add Tasks board column model (TASK_COLUMNS, columnForTaskState, ↵Claudomator Agent
groupTasksByColumn) Pure logic layer for the new Tasks tab Kanban board: a 5-column partition of all 10 task states (Queue/Running/Ready/Interrupted/Done) with per-column sort directions (Queue+Ready oldest-first, Running+Interrupted+Done newest-first). Also fixes 2 pre-existing stale assertions in tab-persistence.test.mjs (default tab is 'stories', not 'queue', since cc6b323). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>