mirror of
https://github.com/multica-ai/multica.git
synced 2026-07-26 20:45:37 +02:00
* feat(properties): add custom icons Co-authored-by: multica-agent <github@multica.ai> * fix(migrations): use unique property icon prefix Co-authored-by: multica-agent <github@multica.ai> * fix(properties): replace emoji icons with Lucide picker Co-authored-by: multica-agent <github@multica.ai> --------- Co-authored-by: Lambda <lambda@multica.ai> Co-authored-by: multica-agent <github@multica.ai>
41 lines
1.9 KiB
TypeScript
41 lines
1.9 KiB
TypeScript
import { expect, test } from "@playwright/test";
|
|
import { loginAsDefault, waitForPageText } from "./helpers";
|
|
|
|
test("creates, persists, and clears a custom property icon", async ({ page }) => {
|
|
const workspaceSlug = await loginAsDefault(page);
|
|
const propertyName = `Icon ${Date.now().toString(36)}`;
|
|
|
|
await page.goto(`/${workspaceSlug}/settings?tab=properties`, {
|
|
waitUntil: "domcontentloaded",
|
|
});
|
|
await waitForPageText(page, "Properties");
|
|
await page.getByRole("button", { name: "New property" }).click();
|
|
const createDialog = page.getByRole("dialog", { name: "New property" });
|
|
await expect(createDialog).toBeVisible();
|
|
|
|
await createDialog.getByRole("button", { name: "Choose icon" }).click();
|
|
await page.getByRole("button", { name: "Flag", exact: true }).click();
|
|
await createDialog.getByLabel("Name").fill(propertyName);
|
|
await createDialog.getByPlaceholder("Option name").fill("Critical");
|
|
await createDialog.getByRole("button", { name: "Save property" }).click();
|
|
|
|
await expect(createDialog).not.toBeVisible();
|
|
const propertyNameCell = page.getByText(propertyName, { exact: true }).locator("..");
|
|
await expect(propertyNameCell).toBeVisible();
|
|
await expect(propertyNameCell.locator('[data-property-icon="flag"]')).toBeVisible();
|
|
|
|
await page.getByRole("button", { name: `Actions for ${propertyName}` }).click();
|
|
await page.getByRole("menuitem", { name: "Edit" }).click();
|
|
const editDialog = page.getByRole("dialog", { name: "Edit property" });
|
|
await expect(editDialog).toBeVisible();
|
|
await expect(
|
|
editDialog.locator('[data-property-icon="flag"]'),
|
|
).toBeVisible();
|
|
|
|
await editDialog.getByRole("button", { name: "Choose icon" }).click();
|
|
await page.getByRole("button", { name: "Remove icon" }).click();
|
|
await editDialog.getByRole("button", { name: "Save property" }).click();
|
|
await expect(editDialog).not.toBeVisible();
|
|
await expect(propertyNameCell.locator("[data-property-icon]")).toHaveCount(0);
|
|
});
|