Skip to content

Commit 4d28d93

Browse files
authored
Merge pull request #641 from Chris0Jeky/fix/626-review-collapsible-sections
UX-26: Review collapsible detail sections and risk color-coding
2 parents d89dc1d + 6b335a9 commit 4d28d93

File tree

3 files changed

+316
-83
lines changed

3 files changed

+316
-83
lines changed

frontend/taskdeck-web/src/tests/views/ReviewView.spec.ts

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,11 +267,26 @@ describe('ReviewView', () => {
267267
const { wrapper } = await mountAt('/workspace/review')
268268

269269
expect(mocks.getProposals).toHaveBeenCalledWith({ limit: 200 })
270+
// "Capture-linked" chip is visible on the collapsed toggle
270271
expect(wrapper.text()).toContain('Capture-linked')
272+
273+
// Expand the Technical details section to see provenance content
274+
const provenanceToggle = wrapper.findAll('.td-review-card__collapse-toggle').find((btn) => btn.text().includes('Technical details'))
275+
expect(provenanceToggle).toBeDefined()
276+
await provenanceToggle!.trigger('click')
277+
await wrapper.vm.$nextTick()
278+
271279
expect(wrapper.text()).toContain('Triage run: a1b2c3d4...')
272280
expect(wrapper.text()).not.toContain(fullCorrelationId)
273281
const triageSpan = wrapper.find('.td-review-card__provenance-meta')
274282
expect(triageSpan.attributes('title')).toBe(fullCorrelationId)
283+
284+
// Open the Links dropdown to find provenance links
285+
const linksBtn = wrapper.findAll('.td-btn--secondary').find((btn) => btn.text().includes('Links'))
286+
expect(linksBtn).toBeDefined()
287+
await linksBtn!.trigger('click')
288+
await wrapper.vm.$nextTick()
289+
275290
expect(wrapper.find('a[href="/workspace/inbox?boardId=board-1#capture-capture-99"]').exists()).toBe(true)
276291
expect(wrapper.find('a[href="/workspace/review?boardId=board-1#proposal-proposal-99"]').exists()).toBe(true)
277292
})
@@ -287,6 +302,18 @@ describe('ReviewView', () => {
287302

288303
const { wrapper } = await mountAt('/workspace/review?boardId=board-7')
289304

305+
// Expand the Technical details section
306+
const provenanceToggle = wrapper.findAll('.td-review-card__collapse-toggle').find((btn) => btn.text().includes('Technical details'))
307+
expect(provenanceToggle).toBeDefined()
308+
await provenanceToggle!.trigger('click')
309+
await wrapper.vm.$nextTick()
310+
311+
// Open the Links dropdown
312+
const linksBtn = wrapper.findAll('.td-btn--secondary').find((btn) => btn.text().includes('Links'))
313+
expect(linksBtn).toBeDefined()
314+
await linksBtn!.trigger('click')
315+
await wrapper.vm.$nextTick()
316+
290317
expect(wrapper.find('a[href="/workspace/inbox?boardId=board-7#capture-capture-99"]').exists()).toBe(true)
291318
})
292319

@@ -544,11 +571,23 @@ describe('ReviewView', () => {
544571

545572
const { wrapper } = await mountAt('/workspace/review')
546573

574+
// Title and impact cue are always visible
547575
expect(wrapper.text()).toContain('Rename the support board and create a follow-up card.')
548-
expect(wrapper.text()).toContain('Created from an automation chat session.')
576+
expect(wrapper.text()).toContain('2 changes touching 2 target surfaces.')
577+
578+
// Affected cards are collapsed by default -- expand to verify
579+
const entitiesToggle = wrapper.findAll('.td-review-card__collapse-toggle').find((btn) => btn.text().includes('Affected cards'))
580+
expect(entitiesToggle).toBeDefined()
581+
await entitiesToggle!.trigger('click')
582+
await wrapper.vm.$nextTick()
549583
expect(wrapper.text()).toContain('Board board-12 · 1 change')
584+
585+
// Planned changes are collapsed by default -- expand to verify
586+
const operationsToggle = wrapper.findAll('.td-review-card__collapse-toggle').find((btn) => btn.text().includes('Planned changes'))
587+
expect(operationsToggle).toBeDefined()
588+
await operationsToggle!.trigger('click')
589+
await wrapper.vm.$nextTick()
550590
expect(wrapper.text()).toContain('Rename board "Support".')
551-
expect(wrapper.text()).toContain('Open Board')
552591
})
553592

554593
it('redirects legacy proposal routes to the canonical review route', async () => {

0 commit comments

Comments
 (0)