From 1cb35c9d1329902ef695c8b92390b063f5a9fc79 Mon Sep 17 00:00:00 2001 From: Pier Francesco Ferrari Date: Wed, 8 Apr 2026 18:22:16 +0200 Subject: [PATCH] feat: enforce classnames of interactive elements --- packages/app-elements/src/ui/atoms/A.test.tsx | 8 ++-- .../app-elements/src/ui/atoms/Button.test.tsx | 10 +++-- .../ui/composite/Dropdown/Dropdown.test.tsx | 2 +- .../__snapshots__/Dropdown.test.tsx.snap | 8 ++-- .../__snapshots__/index.test.tsx.snap | 4 +- .../internals/InteractiveElement.className.ts | 45 +++++++++++++------ .../ResourceLineItems.test.tsx.snap | 14 +++--- 7 files changed, 57 insertions(+), 34 deletions(-) diff --git a/packages/app-elements/src/ui/atoms/A.test.tsx b/packages/app-elements/src/ui/atoms/A.test.tsx index 26ad50ca..8a083f41 100644 --- a/packages/app-elements/src/ui/atoms/A.test.tsx +++ b/packages/app-elements/src/ui/atoms/A.test.tsx @@ -54,7 +54,8 @@ describe("Anchor", () => { click me , ) - expect(getByRole("link").className).toContain("px-4 h-9") + expect(getByRole("link").className).toContain("h-9") + expect(getByRole("link").className).toContain("px-4") }) it("Should render as size regular (default)", () => { @@ -63,7 +64,8 @@ describe("Anchor", () => { click me , ) - expect(getByRole("link").className).toContain("px-4 h-10") + expect(getByRole("link").className).toContain("px-4") + expect(getByRole("link").className).toContain("h-10") }) it("Should render with flex alignment", () => { @@ -72,6 +74,6 @@ describe("Anchor", () => { click me , ) - expect(getByRole("link").className).toContain("flex gap-1 items-center") + expect(getByRole("link").className).toContain("inline") }) }) diff --git a/packages/app-elements/src/ui/atoms/Button.test.tsx b/packages/app-elements/src/ui/atoms/Button.test.tsx index 4c80d154..17d4c381 100644 --- a/packages/app-elements/src/ui/atoms/Button.test.tsx +++ b/packages/app-elements/src/ui/atoms/Button.test.tsx @@ -39,16 +39,20 @@ describe("Button", () => { it("Should render as size small", () => { const { getByRole } = render() - expect(getByRole("button").className).toContain("px-4 h-9") + expect(getByRole("button").className).toContain("px-4") + expect(getByRole("button").className).toContain("h-9") }) it("Should render as size regular (default)", () => { const { getByRole } = render() - expect(getByRole("button").className).toContain("px-4 h-10") + expect(getByRole("button").className).toContain("px-4") + expect(getByRole("button").className).toContain("h-10") }) it("Should render with flex alignment", () => { const { getByRole } = render() - expect(getByRole("button").className).toContain("flex gap-1 items-center") + expect(getByRole("button").className).toContain("inline-flex") + expect(getByRole("button").className).toContain("gap-1") + expect(getByRole("button").className).toContain("items-center") }) }) diff --git a/packages/app-elements/src/ui/composite/Dropdown/Dropdown.test.tsx b/packages/app-elements/src/ui/composite/Dropdown/Dropdown.test.tsx index 9d83ada0..3218c04c 100644 --- a/packages/app-elements/src/ui/composite/Dropdown/Dropdown.test.tsx +++ b/packages/app-elements/src/ui/composite/Dropdown/Dropdown.test.tsx @@ -33,7 +33,7 @@ describe("Dropdown", () => { diff --git a/packages/app-elements/src/ui/composite/Dropdown/__snapshots__/Dropdown.test.tsx.snap b/packages/app-elements/src/ui/composite/Dropdown/__snapshots__/Dropdown.test.tsx.snap index f04595c6..40ae5233 100644 --- a/packages/app-elements/src/ui/composite/Dropdown/__snapshots__/Dropdown.test.tsx.snap +++ b/packages/app-elements/src/ui/composite/Dropdown/__snapshots__/Dropdown.test.tsx.snap @@ -8,7 +8,7 @@ exports[`Dropdown > Should be rendering bottom-left 1`] = `