From 2479a06f9a29cbb83565ea322b5754aa400e75cb Mon Sep 17 00:00:00 2001 From: Florian Schroedl Date: Fri, 29 Aug 2025 11:27:29 +0200 Subject: [PATCH] :bug: Fix token create not disabled when creating token without value --- frontend/playwright/ui/specs/tokens.spec.js | 29 +++++++++++++++++++ .../tokens/management/create/form.cljs | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/frontend/playwright/ui/specs/tokens.spec.js b/frontend/playwright/ui/specs/tokens.spec.js index 5878c762a8..e1d707268f 100644 --- a/frontend/playwright/ui/specs/tokens.spec.js +++ b/frontend/playwright/ui/specs/tokens.spec.js @@ -404,6 +404,35 @@ test.describe("Tokens: Tokens Tab", () => { await expect(tokensTabPanel.getByLabel("color.dark.primary")).toBeEnabled(); }); + test("User cant create regular token with value missing", async ({ + page, + }) => { + const { tokensUpdateCreateModal } = await setupEmptyTokensFile(page); + + const tokensTabPanel = page.getByRole("tabpanel", { name: "tokens" }); + await tokensTabPanel + .getByRole("button", { name: "Add Token: Color" }) + .click(); + + await expect(tokensUpdateCreateModal).toBeVisible(); + + const nameField = tokensUpdateCreateModal.getByLabel("Name"); + const valueField = tokensUpdateCreateModal.getByLabel("Value"); + const submitButton = tokensUpdateCreateModal.getByRole("button", { + name: "Save", + }); + + // Initially submit button should be disabled + await expect(submitButton).toBeDisabled(); + + // Fill in name but leave value empty + await nameField.click(); + await nameField.fill("color.primary"); + + // Submit button should remain disabled when value is empty + await expect(submitButton).toBeDisabled(); + }); + test("User changes color token color while keeping custom color space", async ({ page, }) => { diff --git a/frontend/src/app/main/ui/workspace/tokens/management/create/form.cljs b/frontend/src/app/main/ui/workspace/tokens/management/create/form.cljs index 3d4eabef02..eff880f712 100644 --- a/frontend/src/app/main/ui/workspace/tokens/management/create/form.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/management/create/form.cljs @@ -404,7 +404,7 @@ custom-input-token-value-props: Custom props passed to the custom-input-token-va (on-update-value-debounced next-value))) value-error? (seq (:errors token-resolve-result)) - valid-value-field? (not value-error?) + valid-value-field? (and token-resolve-result (not value-error?)) ;; Description description-ref (mf/use-var (:description token))