Ctrl K
ComunidadGuías…

e2e/lazy-calendar-smoke.spec.ts

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

Archivo original ↗Preguntar a KiBot
import { expect, test } from "@playwright/test";
import { createTestApi, loginAsDefault } from "./helpers";
import { mkdirSync } from "node:fs";

test("calendar lazy loading in issue details, custom properties and date-range filters", async ({ page }) => {
  await page.setViewportSize({ width: 1440, height: 1000 });
  const api = await createTestApi();
  try {
    await api.createProperty("Review date", "date");
    const issue = await api.createIssue("Calendar loading verification", { due_date: "2026-11-05" });
    const slug = await loginAsDefault(page);
    await page.goto(`/${slug}/issues/${issue.id}`);
    const sidebar = page.locator("[data-right-sidebar-panel]");
    const date = sidebar.getByRole("button", { name: "Nov 5", exact: true });
    await date.click();
    await expect(page.getByRole("grid")).toBeVisible({ timeout: 15_000 });
    if (process.env.SHOTS_DIR) {
      mkdirSync(process.env.SHOTS_DIR, { recursive: true });
      await page.screenshot({ path: `${process.env.SHOTS_DIR}/calendar-after.png`, animations: "disabled" });
    }
    const target = new Date(2026, 10, 6).toLocaleDateString("en-US");
    await page.locator(`button[data-day="${target}"]`).click();
    await expect(page.getByRole("grid")).toBeHidden();
    await expect(sidebar.getByRole("button", { name: "Nov 6", exact: true })).toBeVisible();
    await sidebar.getByRole("button", { name: "Nov 6", exact: true }).click();
    await page.getByRole("button", { name: "No due date", exact: true }).click();
    await expect(page.getByRole("grid")).toBeHidden();

    await sidebar.getByRole("button", { name: "Add property", exact: true }).click();
    await page.getByTestId("add-property-popover").getByRole("button", { name: "Review date", exact: true }).click();
    await expect(page.getByRole("grid")).toBeVisible();
    const today = await page.evaluate(() => new Date().toLocaleDateString());
    await page.locator(`button[data-day="${today}"]`).click();
    await expect(page.getByRole("grid")).toBeHidden();

    await page.goto(`/${slug}/issues`);
    await page.getByRole("button", { name: "Filter", exact: true }).click();
    await page.getByRole("menuitem", { name: /^Date\b/ }).hover();
    await page.getByRole("button", { name: "Custom date or range", exact: true }).click();
    await expect(page.getByRole("grid")).toBeVisible();
    await expect(page.locator("button[data-day]:focus")).toHaveCount(1);
    await page.keyboard.press("ArrowRight");
    await page.keyboard.press("Enter");
    await expect(page.getByRole("button", { name: "Apply", exact: true })).toBeEnabled();
    if (process.env.SHOTS_DIR) {
      await page.screenshot({ path: `${process.env.SHOTS_DIR}/range-after.png`, animations: "disabled" });
    }
    await page.getByRole("button", { name: "Apply", exact: true }).click();
    await expect(page.getByRole("grid")).toBeHidden();
  } finally {
    await api.cleanup();
  }
});