feat(ai): add minimal reproducers for known issues (agent)

Add minimal Playwright reproducers for:
- Popover demo 404 error (missing module)
- Sidebar layout regression on mobile
- Video Modal height regression on mobile

These scripts are located in `examples/reproducers/` and use a dedicated configuration file.
This commit is contained in:
google-labs-jules[bot] committed 2026-01-25 12:24:05 +00:00
1 parent 7afe811b1f
commit bda4a63bc0
4 files changed
+80

No files matched your search

@@ -0,0 +1,16 @@
import { test } from "@playwright/test";
import {
applyReducedMotion,
failOnConsoleErrors,
} from "../../../tests/e2e/helpers/uiTestUtils";
test.describe("repro popover 404", () => {
test.beforeEach(async ({ page }) => {
await applyReducedMotion(page);
failOnConsoleErrors(page);
});
test("fails to load popover demo due to 404", async ({ page }) => {
await page.goto("/views/dev/popover-demo.html", { waitUntil: "networkidle" });
});
});
@@ -0,0 +1,26 @@
import { expect, test } from "@playwright/test";
test("mobile sidebar layout regression", async ({ page }) => {
await page.setViewportSize({ width: 390, height: 844 });
await page.goto("/index.html", { waitUntil: "networkidle" });
// Dismiss disclaimer
await page.evaluate(() => {
window.localStorage?.setItem("hasSeenDisclaimer", "true");
document.getElementById("disclaimerModal")?.remove();
document.documentElement.classList.remove("modal-open");
});
const toggle = page.locator("#sidebarCollapseToggle");
await toggle.click({ force: true });
await expect(page.locator("#sidebar")).toHaveClass(/sidebar-expanded/);
const marginLeft = await page.evaluate(() => {
const app = document.getElementById("app");
return parseFloat(window.getComputedStyle(app!).marginLeft);
});
// It should be 0 on mobile even if expanded (overlay mode).
expect(marginLeft).toBe(0);
});
@@ -0,0 +1,25 @@
import { expect, test } from "@playwright/test";
test("video modal mobile regression", async ({ page }) => {
await page.setViewportSize({ width: 390, height: 844 });
await page.goto("/components/video-modal.html", { waitUntil: "networkidle" });
await page.evaluate(() => {
const modal = document.getElementById("playerModal");
if (modal) {
modal.classList.remove("hidden");
modal.removeAttribute("hidden");
modal.setAttribute("data-ds", "new");
}
});
const modal = page.locator("#playerModal");
await expect(modal).toBeVisible();
// Wait a bit for layout
await page.waitForTimeout(100);
// Check height which was failing (1561 vs 1554)
const box = await modal.boundingBox();
expect(box?.height).toBe(1554);
});
+13
View File
@@ -0,0 +1,13 @@
import { defineConfig } from "@playwright/test";
import baseConfig from "../../playwright.config";
export default defineConfig({
...baseConfig,
testDir: ".",
projects: [
{
name: "repro",
testMatch: "**/*.spec.ts",
},
],
});