diff --git a/frontend/src/CountdownPanel.test.ts b/frontend/src/CountdownPanel.test.ts index de0d620..dfa12de 100644 --- a/frontend/src/CountdownPanel.test.ts +++ b/frontend/src/CountdownPanel.test.ts @@ -10,6 +10,28 @@ describe('countdown modal accessibility', () => { expect(source).toContain('@keydown.esc="closeDialog"') expect(source).toContain('ref="titleInput"') expect(source).toContain('titleInput.value?.focus()') - expect(source).toContain(':inert="open"') + expect(source).toContain(':inert="open || Boolean(detailItem)"') + }) + + it('uses a compact timeline and moves row actions into a detail sheet', () => { + expect(source).toContain('class="countdown-timeline"') + expect(source).toContain('class="countdown-row"') + expect(source).toContain('@click="openDetail(item)"') + expect(source).toContain('class="countdown-detail-sheet"') + expect(source).toContain('ref="detailCloseButton"') + expect(source).toContain('detailCloseButton.value?.focus()') + expect(source).not.toContain('class="countdown-actions"') + }) + + it('keeps advanced creation fields collapsed behind more settings', () => { + expect(source).toContain('class="countdown-advanced"') + expect(source).toContain('更多设置') + expect(source).toContain('@change="applyKindDefaults"') + expect(source).toContain(':disabled="form.ignore_year"') + }) + + it('keeps the empty state directly actionable', () => { + expect(source).toContain('添加第一个重要日子') + expect(source).toContain('@click="openFromEmpty"') }) }) diff --git a/frontend/src/CountdownPanel.vue b/frontend/src/CountdownPanel.vue index 3545076..6250284 100644 --- a/frontend/src/CountdownPanel.vue +++ b/frontend/src/CountdownPanel.vue @@ -1,6 +1,6 @@