Add planner-aware memos and unified tool configuration panels
All checks were successful
Deploy Sokko G / deploy (push) Successful in 18s

This commit is contained in:
Shinuwa 2026-10-03 15:58:33 +02:00
parent acd9b2fe11
commit 808610dcf2
53 changed files with 842 additions and 329 deletions

View file

@ -23,7 +23,7 @@ test("table text import/export preserves formulas and labels, copies read-only t
const table = page.locator('[data-module-type="table"]');
const importButton = table.getByRole("button", { name: "Importer TSV", exact: true });
await expect(importButton).toBeHidden();
await table.getByRole("button", { name: "Afficher l'import/export de Tableau", exact: true }).click();
await table.getByRole("button", { name: "Configuration", exact: true }).click();
await expect(table.getByRole("button", { name: "Exporter TSV", exact: true })).toBeDisabled();
const originalOverflow = await page.locator("body").evaluate((body) => body.style.overflow);
await importButton.click();
@ -49,7 +49,7 @@ test("table text import/export preserves formulas and labels, copies read-only t
await expect(table.getByRole("textbox", { name: "Intitulé de colonne A", exact: true })).toHaveValue("Quantity");
await expect(table.getByRole("textbox", { name: "Intitulé de ligne 1", exact: true })).toHaveValue("Ore");
await expect(table.getByRole("textbox", { name: "Cellule B1", exact: true })).toHaveValue("6");
await table.getByRole("button", { name: "Afficher l'import/export de Tableau", exact: true }).click();
await table.getByRole("button", { name: "Configuration", exact: true }).click();
await table.getByRole("button", { name: "Exporter TSV", exact: true }).click();
const exported = page.getByRole("dialog", { name: "Exporter un tableau TSV", exact: true });
await expect(exported.getByRole("textbox")).toHaveAttribute("readonly", "");
@ -60,14 +60,15 @@ test("table text import/export preserves formulas and labels, copies read-only t
await exported.getByRole("textbox").press("Escape");
await expect(exported).toBeHidden();
await expect.poll(() => page.locator("body").evaluate((body) => body.style.overflow)).toBe(originalOverflow);
await table.getByRole("button", { name: "Masquer l'import/export de Tableau", exact: true }).click();
await table.getByRole("button", { name: "Configuration", exact: true }).click();
await expect(importButton).toBeHidden();
await expect(table.getByRole("button", { name: "Configuration", exact: true })).toHaveAttribute("aria-expanded", "false");
});
test("invalid calculator imports preserve existing results and a corrected import replaces them with a persistent hierarchy", async ({ page }) => {
await setup(page);
const calc = page.locator('[data-module-type="calculator"]');
await calc.getByRole("button", { name: "Afficher l'import/export de Calculateur", exact: true }).click();
await calc.getByRole("button", { name: "Configuration", exact: true }).click();
const openImport = calc.getByRole("button", { name: "Importer du texte", exact: true });
await openImport.click();
const dialog = page.getByRole("dialog", { name: "Importer des résultats", exact: true });
@ -78,7 +79,7 @@ test("invalid calculator imports preserve existing results and a corrected impor
await dialog.getByRole("button", { name: "Fermer", exact: true }).click();
await page.reload();
await expect(calc.locator(".calculator-entry em")).toHaveText(["Original"]);
await calc.getByRole("button", { name: "Afficher l'import/export de Calculateur", exact: true }).click();
await calc.getByRole("button", { name: "Configuration", exact: true }).click();
await openImport.click();
await expect(dialog.getByRole("textbox")).toHaveValue("");
await expect(dialog.getByRole("alert")).toHaveCount(0);
@ -97,7 +98,7 @@ test("invalid calculator imports preserve existing results and a corrected impor
await page.reload();
await expect(calc.locator(".calculator-entry em")).toHaveText(["Ore", "Bars"]);
await expect(calc.getByRole("button", { name: "Liste scrollable", exact: true })).toHaveAttribute("aria-pressed", "true");
await calc.getByRole("button", { name: "Afficher l'import/export de Calculateur", exact: true }).click();
await calc.getByRole("button", { name: "Configuration", exact: true }).click();
await calc.getByRole("button", { name: "Exporter en format texte", exact: true }).click();
const exported = page.getByRole("dialog", { name: "Exporter des résultats", exact: true });
await expect(exported.getByRole("textbox")).toHaveValue(text);