mirror of
https://github.com/anomalyco/opencode.git
synced 2026-11-14 12:10:45 +03:00
50 lines
2.3 KiB
TypeScript
50 lines
2.3 KiB
TypeScript
import { expect, story } from "../../stories/playwright/story"
|
|
|
|
story("opens a neighbouring tooltip without the open delay", async ({ mount, page }) => {
|
|
const root = await mount("ui-tooltip--appearances")
|
|
await root.getByText("Standard", { exact: true }).hover()
|
|
await expect(page.getByRole("tooltip", { name: "Standard tooltip" })).toBeVisible()
|
|
// With timers frozen, the next tooltip can only open through the skip-delay window that closing this one starts.
|
|
await page.clock.install({ time: new Date("2026-01-01T00:00:00Z") })
|
|
await page.clock.pauseAt(new Date("2026-01-01T00:00:01Z"))
|
|
await root.getByText("Compact", { exact: true }).hover()
|
|
await expect(page.getByRole("tooltip", { name: "Compact tooltip" })).toBeVisible()
|
|
})
|
|
|
|
story("keeps a menu trigger's tooltip hidden when the menu closes under a still pointer", async ({ mount, page }) => {
|
|
const root = await mount("ui-tooltip--with-menu")
|
|
await page.clock.install()
|
|
const trigger = root.getByRole("button", { name: "Actions" })
|
|
const tooltip = page.getByRole("tooltip", { name: "More actions" })
|
|
await trigger.hover()
|
|
await expect(tooltip).toBeVisible()
|
|
await trigger.click()
|
|
await expect(page.getByRole("menu")).toBeVisible()
|
|
await expect(tooltip).toBeHidden()
|
|
await page.keyboard.press("Escape")
|
|
await expect(page.getByRole("menu")).toBeHidden()
|
|
await expect(trigger).toBeFocused()
|
|
// The menu's closing layer hands the still pointer a fresh pointerenter, which would open the tooltip 400 ms later.
|
|
await page.clock.runFor(1000)
|
|
await expect(tooltip).toBeHidden()
|
|
await page.mouse.move(0, 0)
|
|
await trigger.hover()
|
|
await expect(tooltip).toBeVisible()
|
|
})
|
|
|
|
story("opens a menu trigger's tooltip on the next hover after the menu closes", async ({ mount, page }) => {
|
|
const root = await mount("ui-tooltip--with-menu")
|
|
const trigger = root.getByRole("button", { name: "Actions" })
|
|
const tooltip = page.getByRole("tooltip", { name: "More actions" })
|
|
await trigger.hover()
|
|
await expect(tooltip).toBeVisible()
|
|
await trigger.click()
|
|
await expect(page.getByRole("menu")).toBeVisible()
|
|
await page.mouse.move(0, 0)
|
|
await page.keyboard.press("Escape")
|
|
await expect(page.getByRole("menu")).toBeHidden()
|
|
await expect(trigger).toBeFocused()
|
|
await trigger.hover()
|
|
await expect(tooltip).toBeVisible()
|
|
})
|