Ctrl K
ComunidadGuías…

packages/app/component-tests/tooltip.spec.ts

Rama dev · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
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()
})