feat: simplify today into plain list
This commit is contained in:
+19
-22
@@ -789,10 +789,12 @@ describe('task and habit row decoration', () => {
|
||||
expect(app).toContain('if (restoredNavigation.view === \'tasks\' && restoredNavigation.listId)')
|
||||
})
|
||||
|
||||
it('uses one topbar pill and keeps App as the only preference owner', () => {
|
||||
it('uses one completed filter per supported view and keeps App as the only preference owner', () => {
|
||||
expect(app).toContain("import CompletedFilterPill from './components/CompletedFilterPill.vue'")
|
||||
expect(app.match(/<CompletedFilterPill/g)).toHaveLength(1)
|
||||
expect(app.match(/<CompletedFilterPill/g)).toHaveLength(2)
|
||||
expect(app).toContain("v-if=\"['today', 'tasks', 'upcoming', 'habits'].includes(activeView)\"")
|
||||
expect(app).toContain('<CompletedFilterPill v-if="activeView!==\'today\'" v-model="showCompleted" class="topbar-filter" />')
|
||||
expect(app).toContain('class="today-inline-filter"')
|
||||
expect(app).toContain('v-model="showCompleted"')
|
||||
expect(app).toContain('class="topbar-actions"')
|
||||
expect(app).toContain('topbar-refresh')
|
||||
@@ -912,18 +914,20 @@ describe('task and habit row decoration', () => {
|
||||
expect(app).toContain("params.set('due_to', isoAtLocalDayOffset(0))")
|
||||
expect(app).toContain("params.set('completed', 'false')")
|
||||
expect(app).toContain('class="overdue-section today-collapsible-section"')
|
||||
expect(app).toContain('已过期')
|
||||
expect(app).toContain('<span class="today-section-title">逾期</span>')
|
||||
expect(app).toContain('v-for="node in overdueTaskTree"')
|
||||
expect(css).toContain('.overdue-section{')
|
||||
expect(css).toContain('.overdue-heading{')
|
||||
})
|
||||
|
||||
it('keeps Today as a low-noise dashboard with direct empty-state actions', () => {
|
||||
expect(app).toContain('class="today-board"')
|
||||
expect(app).toContain('class="today-track today-task-track"')
|
||||
expect(app).toContain('class="today-track today-habit-track"')
|
||||
expect(app).toContain(':style="{ width: todayTaskProgressPercent }"')
|
||||
expect(app).toContain(':style="{ width: todayHabitProgressPercent }"')
|
||||
it('keeps Today as a low-noise continuous list with direct empty-state actions', () => {
|
||||
expect(app).toContain('class="today-context"')
|
||||
expect(app).toContain('还有 {{ todayTaskRemaining + todayHabitRemaining }} 项待完成')
|
||||
expect(app).not.toContain('class="today-board"')
|
||||
expect(app).not.toContain('class="today-track today-task-track"')
|
||||
expect(app).not.toContain('class="today-track today-habit-track"')
|
||||
expect(app).not.toContain(':style="{ width: todayTaskProgressPercent }"')
|
||||
expect(app).not.toContain(':style="{ width: todayHabitProgressPercent }"')
|
||||
expect(app).toContain('async function loadTodayTaskSummary()')
|
||||
expect(app).toContain('const token = ++todaySummaryLoadToken')
|
||||
expect(app).toContain("params.set('completed', String(completed))")
|
||||
@@ -931,21 +935,13 @@ describe('task and habit row decoration', () => {
|
||||
expect(app).toContain('await Promise.all([summaryTotal(false), summaryTotal(true), overdueTotal()])')
|
||||
expect(app).toContain('todayTaskTotal.value = overdue + open + completed')
|
||||
expect(app).toContain("if (activeView.value === 'today') void loadTodayTaskSummary()")
|
||||
expect(app).toContain('aria-controls="today-tasks"')
|
||||
expect(app).toContain('aria-controls="today-habits"')
|
||||
expect(app).toContain('role="progressbar"')
|
||||
expect(app).toContain(':aria-valuemax="todayTaskTotal"')
|
||||
expect(app).toContain(':aria-valuenow="todayHabitCompleted"')
|
||||
expect(app).toContain('任务 {{ todayTaskCompleted }} / {{ todayTaskTotal }}')
|
||||
expect(app).toContain('习惯 {{ todayHabitProgress }}')
|
||||
expect(app).not.toContain('role="progressbar"')
|
||||
expect(app).not.toContain('const todayProgressText = computed')
|
||||
expect(app).not.toContain('const todayTaskProgressHint = computed')
|
||||
expect(app).not.toContain('const todayHabitProgressHint = computed')
|
||||
expect(app).not.toContain('<p v-if="activeView===\'today\'">')
|
||||
expect(app).not.toContain('class="paper today-summary"')
|
||||
expect(app).not.toContain('today-summary-grid')
|
||||
expect(app).toContain("navigateTodaySection('tasks')")
|
||||
expect(app).toContain("navigateTodaySection('habits')")
|
||||
expect(app).not.toContain('<div class="today-stat"')
|
||||
expect(app).toContain('@summary="updateTodayHabitSummary"')
|
||||
expect(mvpPanel).toContain("summary: [value: { total: number; completed: number }]")
|
||||
@@ -956,10 +952,11 @@ describe('task and habit row decoration', () => {
|
||||
expect(app).toContain('v-if="activeView===\'trash\' || totalPages > 1 || totalTasks > 0"')
|
||||
expect(mvpPanel).toContain('class="empty-panel today-empty-panel"')
|
||||
expect(mvpPanel).toContain('添加习惯')
|
||||
expect(css).toContain('.today-board{')
|
||||
expect(css).toContain('.today-track{')
|
||||
expect(css).toContain('.today-track-fill{')
|
||||
expect(css).toContain('.today-habit-track .today-track-fill{')
|
||||
expect(css).toContain('.today-context{')
|
||||
expect(css).toContain('.today-remaining{')
|
||||
expect(css).not.toContain('.today-board{')
|
||||
expect(css).not.toContain('.today-track{')
|
||||
expect(css).not.toContain('.today-track-fill{')
|
||||
expect(css).not.toContain('.today-stat{')
|
||||
expect(css).not.toContain('.today-summary{')
|
||||
expect(css).not.toContain('.today-summary-grid{')
|
||||
|
||||
Reference in New Issue
Block a user