fix: align overdue task swipe motion
ci / gitleaks (push) Successful in 1m5s
ci / docker (push) Successful in 4m33s

This commit is contained in:
2026-09-15 15:53:46 +08:00
parent 51761f7615
commit a6c12ee01f
2 changed files with 18 additions and 6 deletions
+17 -5
View File
@@ -256,6 +256,18 @@ describe('completion feedback motion', () => {
expect(css).toContain('@keyframes completion-slide-out')
})
it('gives overdue tasks the same right-swipe completion motion as regular tasks and habits', () => {
const overdueBlock = app.slice(app.indexOf('<section v-if="overdueTaskTree.length"'), app.indexOf('<button id="today-tasks-heading"'))
expect(overdueBlock).toContain('class="task-row overdue-task swipeable"')
expect(overdueBlock).toContain("'just-completed':justCompletedTaskIds.has(node.task.id)")
expect(overdueBlock).toContain("ready:Math.abs(taskSwipeOffsets[node.task.id] ?? 0) >= 64")
expect(overdueBlock).toContain("'--swipe-x': `${taskSwipeOffsets[node.task.id] ?? 0}px`")
expect(overdueBlock).toContain('@pointerdown="startTaskPointer(node.task, $event)"')
expect(overdueBlock).toContain('@touchstart.passive="startTaskSwipe(node.task, $event)"')
expect(overdueBlock).toContain('@click="selectTaskUnlessSwiped(node.task)"')
expect(overdueBlock).toContain('@keydown.space.prevent="selectTaskUnlessSwiped(node.task)"')
})
it('animates only transient just-completed rows and respects reduced motion', () => {
expect(css).toContain('.task-row.just-completed,.habit-row.just-completed{animation:completion-row-settle .34s cubic-bezier(.2,.85,.3,1)}')
expect(css).toContain('.task-row.just-completed .task-check-mark,.habit-row.just-completed .task-check-mark{animation:completion-check-pop .38s cubic-bezier(.2,1.4,.35,1)}')
@@ -561,11 +573,11 @@ describe('task and habit row decoration', () => {
expect(purgeBlock).toContain("await mutateTrashTask(task, () => api(`/trash/${task.id}`")
})
it('supports pointer dragging for desktop visible task completion', () => {
expect(app.match(/@pointerdown="startTaskPointer/g)?.length).toBe(1)
expect(app.match(/@pointermove="moveTaskPointer/g)?.length).toBe(1)
expect(app.match(/@pointerup="finishTaskPointer/g)?.length).toBe(1)
expect(app.match(/@pointercancel="cancelTaskPointer/g)?.length).toBe(1)
it('supports pointer dragging for desktop task completion in regular and overdue rows', () => {
expect(app.match(/@pointerdown="startTaskPointer/g)?.length).toBe(2)
expect(app.match(/@pointermove="moveTaskPointer/g)?.length).toBe(2)
expect(app.match(/@pointerup="finishTaskPointer/g)?.length).toBe(2)
expect(app.match(/@pointercancel="cancelTaskPointer/g)?.length).toBe(2)
})
it('supports pointer dragging for desktop habit rows in Today and Habits views', () => {