mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-24 03:09:48 -04:00
23 lines
1.1 KiB
TypeScript
23 lines
1.1 KiB
TypeScript
import { expect, test } from "@playwright/test"
|
|
import { assistantMessage, setupTimeline, shell, userMessage } from "../performance/timeline-stability/fixture"
|
|
|
|
test("space activates a focused timeline button instead of scrolling", async ({ page }) => {
|
|
const shellID = "prt_space_button_shell"
|
|
await setupTimeline(page, {
|
|
messages: [userMessage(), assistantMessage([shell(shellID, "completed", lines(5))])],
|
|
settings: { shellToolPartsExpanded: false },
|
|
reducedMotion: true,
|
|
})
|
|
const scroller = page.locator(".scroll-view__viewport", { has: page.locator("[data-timeline-row]") })
|
|
const trigger = page.locator(`[data-timeline-part-id="${shellID}"] [data-slot="collapsible-trigger"]`)
|
|
await trigger.focus()
|
|
const before = await scroller.evaluate((element) => element.scrollTop)
|
|
await trigger.press("Space")
|
|
await expect(trigger).toHaveAttribute("aria-expanded", "true")
|
|
expect(await scroller.evaluate((element) => element.scrollTop)).toBe(before)
|
|
})
|
|
|
|
function lines(count: number) {
|
|
return Array.from({ length: count }, (_, index) => `line ${index + 1}`).join("\n")
|
|
}
|