Release Fixture Tools 0.2.0
Verify / verify (push) Canceled after 0s

This commit is contained in:
2026-09-02 13:00:37 +02:00
parent f5d018c64f
commit f1c41e7079
22 changed files with 1007 additions and 126 deletions
+22 -1
View File
@@ -54,6 +54,27 @@ test("imports CSV headings and exports an inspectable model", async ({
expect((await pending).suggestedFilename()).toBe("fixture-model.json");
});
test("imports composite constraints and exposes topological coverage", async ({
page,
}) => {
await page.goto("/deep/nested/fixture/");
await page.getByLabel("Fixture model source").fill(`CREATE TABLE tenants (
region VARCHAR(8), tenant_id INTEGER, PRIMARY KEY (region, tenant_id)
);
CREATE TABLE events (
region VARCHAR(8), tenant_id INTEGER,
FOREIGN KEY (region, tenant_id) REFERENCES tenants(region, tenant_id)
);`);
await page.getByRole("button", { name: "Import model" }).click();
await page.getByRole("button", { name: "Generate fixtures" }).click();
await page.getByRole("button", { name: "Coverage" }).click();
await expect(
page.getByRole("heading", { name: "Constraint coverage matrix" }),
).toBeVisible();
await expect(page.getByText("tenants → events")).toBeVisible();
await expect(page.getByText(/foreignKey\(region,tenant_id\)/u)).toBeVisible();
});
test("retains results after a failed import and downloads output", async ({
page,
}) => {
@@ -97,7 +118,7 @@ test("integrates help, themes, PWA identity and hardened headers", async ({
const manifest = await request.get("/deep/nested/fixture/toolbox-app.json");
await expect(manifest.json()).resolves.toMatchObject({
id: "de.add-ideas.fixture-tools",
version: "0.1.0",
version: "0.2.0",
privacy: { processing: "local", telemetry: false },
});
});
+18
View File
@@ -0,0 +1,18 @@
import { expect, test } from "@playwright/test";
test("keeps the primary workspace inside a narrow viewport", async ({
page,
}) => {
await page.goto("/deep/nested/fixture/");
await expect(page.locator("main").first()).toBeVisible();
await expect(
page.locator("main .loading, main .workbench-loading"),
).toHaveCount(0);
const widths = await page.evaluate(() => ({
content: document.documentElement.scrollWidth,
viewport: document.documentElement.clientWidth,
}));
expect(widths.viewport).toBeLessThanOrEqual(430);
expect(widths.content).toBeLessThanOrEqual(widths.viewport + 1);
});