From 8602eb10a11a1dae56f707032b69f8111029a7fc Mon Sep 17 00:00:00 2001 From: Arthur Belleville Date: Sat, 16 May 2026 13:44:36 +0200 Subject: [PATCH] test(13-01): add failing tests for new variant enums and class functions (RED) - TestButtonVariantGhost_Normalizer, TestButtonClass_GhostVariant - TestBadgeVariantPrimary_Normalizer, TestBadgeClass_PrimaryVariant - TestIconButtonClass_GhostNeutral, TestIconButtonClass_SolidNeutral - TestSpaceXClass_MD, TestSpaceYClass_LG --- backend/internal/web/ui/ui_test.go | 61 ++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/backend/internal/web/ui/ui_test.go b/backend/internal/web/ui/ui_test.go index 85d8465..26b81d2 100644 --- a/backend/internal/web/ui/ui_test.go +++ b/backend/internal/web/ui/ui_test.go @@ -130,3 +130,64 @@ func TestNormalizers_ZeroValueDefaults(t *testing.T) { t.Errorf("NormalizedBadgeVariant(\"\") = %q; want %q", got, BadgeVariantInfo) } } + +// Phase 13 Plan 01 — new enum and class function tests (TDD RED) + +func TestButtonVariantGhost_Normalizer(t *testing.T) { + got := NormalizedButtonVariant(ButtonVariantGhost) + if got != ButtonVariantGhost { + t.Errorf("NormalizedButtonVariant(ButtonVariantGhost) = %q; want %q", got, ButtonVariantGhost) + } +} + +func TestButtonClass_GhostVariant(t *testing.T) { + got := ButtonClass(ButtonVariantGhost, ButtonToneSolid, SizeMD) + if !strings.Contains(got, "ui-button-ghost") { + t.Errorf("ButtonClass(Ghost, Solid, MD) = %q; want to contain \"ui-button-ghost\"", got) + } +} + +func TestBadgeVariantPrimary_Normalizer(t *testing.T) { + got := NormalizedBadgeVariant(BadgeVariantPrimary) + if got != BadgeVariantPrimary { + t.Errorf("NormalizedBadgeVariant(BadgeVariantPrimary) = %q; want %q", got, BadgeVariantPrimary) + } +} + +func TestBadgeClass_PrimaryVariant(t *testing.T) { + got := BadgeClass(BadgeVariantPrimary) + want := "ui-badge ui-badge-primary" + if got != want { + t.Errorf("BadgeClass(BadgeVariantPrimary) = %q; want %q", got, want) + } +} + +func TestIconButtonClass_GhostNeutral(t *testing.T) { + got := IconButtonClass(IconButtonVariantNeutral, IconButtonToneGhost) + if !strings.Contains(got, "borderless-icon-button") { + t.Errorf("IconButtonClass(Neutral, Ghost) = %q; want to contain \"borderless-icon-button\"", got) + } +} + +func TestIconButtonClass_SolidNeutral(t *testing.T) { + got := IconButtonClass(IconButtonVariantNeutral, IconButtonToneSolid) + if !strings.Contains(got, "ui-icon-button-solid") { + t.Errorf("IconButtonClass(Neutral, Solid) = %q; want to contain \"ui-icon-button-solid\"", got) + } +} + +func TestSpaceXClass_MD(t *testing.T) { + got := SpaceXClass(SpacingStepMD) + want := "ui-space-x ui-space-x-md" + if got != want { + t.Errorf("SpaceXClass(SpacingStepMD) = %q; want %q", got, want) + } +} + +func TestSpaceYClass_LG(t *testing.T) { + got := SpaceYClass(SpacingStepLG) + want := "ui-space-y ui-space-y-lg" + if got != want { + t.Errorf("SpaceYClass(SpacingStepLG) = %q; want %q", got, want) + } +}