|
|
@@ -180,11 +180,13 @@ describe('web e2e: navigation & panes over a rich seeded session', () => {
|
|
|
await bashRow.waitFor({ timeout: 15_000 })
|
|
|
const frame = page.locator('[style*="grid-template-columns"]').first()
|
|
|
expect(await frame.getAttribute('data-details-collapsed')).toBe('true')
|
|
|
+ // The row click is the card's expand toggle (unified tool-row
|
|
|
+ // interaction); it must not drive layout geometry either way.
|
|
|
await bashRow.click()
|
|
|
await expect.poll(() => frame.getAttribute('data-details-collapsed'), { timeout: 5_000 }).toBe('true')
|
|
|
// The card's own controls are outside the summary row and must not open
|
|
|
- // details either — the terminal card is read in place.
|
|
|
- await page.locator('[data-sample="bash-global"] ~ [data-terminal] [class*="_copyButton_"]').first().click()
|
|
|
+ // details either — the expanded terminal card is read in place.
|
|
|
+ await page.locator('[data-sample="bash-global"] ~ div [data-terminal] [class*="_copyButton_"]').first().click()
|
|
|
await expect.poll(() => frame.getAttribute('data-details-collapsed'), { timeout: 5_000 }).toBe('true')
|
|
|
// Read summaries are host-open file links; they also must not open details.
|
|
|
const fileLink = page.locator('[data-variant="read"] button').first()
|
|
|
@@ -196,10 +198,14 @@ describe('web e2e: navigation & panes over a rich seeded session', () => {
|
|
|
it.skipIf(MODE === 'record')('renders the bash row as a terminal card in the real browser', async () => {
|
|
|
onTestFailed(() => saveFailureShot(page, 'web-e2e-navigation-terminal'))
|
|
|
await page.getByRole('tab', { name: 'Chat' }).click()
|
|
|
- // The card is resident in the keyed bash row (no expand gesture): the
|
|
|
- // recorded command's own output sits in the message flow, derived from the
|
|
|
- // logged call/result presentations alone.
|
|
|
- const card = page.locator('[data-sample="bash-global"] ~ [data-terminal], [data-sample="bash-global"] [data-terminal]').first()
|
|
|
+ // The card is expand-gated behind the whole-row toggle (the unified
|
|
|
+ // tool-row interaction): open it if a previous case left it collapsed.
|
|
|
+ // Expanded, the recorded command's own output sits in the message flow,
|
|
|
+ // derived from the logged call/result presentations alone.
|
|
|
+ const bashRow = page.locator('[data-sample="bash-global"]').first()
|
|
|
+ await bashRow.waitFor({ timeout: 15_000 })
|
|
|
+ if (await bashRow.getAttribute('aria-expanded') !== 'true') await bashRow.click()
|
|
|
+ const card = page.locator('[data-sample="bash-global"] ~ div [data-terminal]').first()
|
|
|
await card.waitFor({ timeout: 15_000 })
|
|
|
// Real layout, not jsdom's stub (which computes no geometry at all):
|
|
|
// squeeze the output pane below its content width and the line must keep
|