diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 9e4259f..1c679f6 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -444,19 +444,6 @@ jobs: .next/test-results retention-days: 30 - storybook: - runs-on: [self-hosted, macos-latest] - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "${{ env.NODE_VERSION }}" - cache: npm - - run: npm ci --no-audit --fund=false - - run: npm run storybook:build:github - # Storybook is used for component documentation only. - # Component tests (tests/components/*.test.tsx) provide all test coverage. - lint: runs-on: [self-hosted, macos-latest] steps: diff --git a/.lighthouseci/assertion-results.json b/.lighthouseci/assertion-results.json deleted file mode 100644 index 113095d..0000000 --- a/.lighthouseci/assertion-results.json +++ /dev/null @@ -1,15 +0,0 @@ -[ - { - "name": "maxNumericValue", - "expected": 5000, - "actual": 6316.213500000003, - "values": [6352.161499999999, 6316.213500000003, 6810.3611], - "operator": "<=", - "passed": false, - "auditId": "interactive", - "level": "warn", - "url": "http://127.0.0.1:3010/", - "auditTitle": "Time to Interactive", - "auditDocumentationLink": "https://developer.chrome.com/docs/lighthouse/performance/interactive/" - } -] diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..b3559c3 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,18 @@ +.next/ +out/ +build/ +dist/ +node_modules/ + +# Test/build artifacts +coverage/ +playwright-report/ +test-results/ +lhci-results/ +.lighthouseci/ + +# Storybook build output +storybook-static/ + +# Misc generated +*.log diff --git a/app/components/ContentLockup.tsx b/app/components/ContentLockup.tsx index 0018127..2d4c7b9 100644 --- a/app/components/ContentLockup.tsx +++ b/app/components/ContentLockup.tsx @@ -169,7 +169,9 @@ const ContentLockup = memo( {/* Subtitle */} - {subtitle ?

{subtitle}

: null} + {subtitle ? ( +

{subtitle}

+ ) : null} {/* Description */} diff --git a/app/components/FeatureGrid.tsx b/app/components/FeatureGrid.tsx index 79e04e7..e72fe83 100644 --- a/app/components/FeatureGrid.tsx +++ b/app/components/FeatureGrid.tsx @@ -73,9 +73,7 @@ const FeatureGrid = memo( {/* MiniCard Grid */} -
+
{features.map((feature, index) => ( = { error: { props: { error: true } as Partial, assert: (el) => { - expect(el).toHaveClass("border-[var(--color-border-default-utility-negative)]"); + expect(el).toHaveClass( + "border-[var(--color-border-default-utility-negative)]", + ); }, }, }, @@ -214,4 +216,3 @@ Accessibility is tested at two levels: - Tests complete user journeys for accessibility barriers This two-tier approach ensures both individual components and full page experiences meet accessibility standards. - diff --git a/tests/components/AskOrganizer.test.tsx b/tests/components/AskOrganizer.test.tsx index 66ca385..fc73c70 100644 --- a/tests/components/AskOrganizer.test.tsx +++ b/tests/components/AskOrganizer.test.tsx @@ -47,7 +47,9 @@ describe("AskOrganizer (behavioral tests)", () => { it("renders subtitle when provided", () => { render(); - expect(screen.getByRole("heading", { name: "Subtitle" })).toBeInTheDocument(); + expect( + screen.getByRole("heading", { name: "Subtitle" }), + ).toBeInTheDocument(); }); it("renders button with default text", () => { diff --git a/tests/components/Button.test.tsx b/tests/components/Button.test.tsx index 27cfac0..3f7f1a5 100644 --- a/tests/components/Button.test.tsx +++ b/tests/components/Button.test.tsx @@ -63,4 +63,3 @@ describe("Button (behavioral tests)", () => { expect(link).toHaveAttribute("href", "/learn"); }); }); - diff --git a/tests/components/Checkbox.test.tsx b/tests/components/Checkbox.test.tsx index 9f6c0ab..1b33731 100644 --- a/tests/components/Checkbox.test.tsx +++ b/tests/components/Checkbox.test.tsx @@ -26,4 +26,3 @@ componentTestSuite({ disabledProps: { disabled: true }, }, }); - diff --git a/tests/components/ContentBanner.test.tsx b/tests/components/ContentBanner.test.tsx index d9db264..79a4ec9 100644 --- a/tests/components/ContentBanner.test.tsx +++ b/tests/components/ContentBanner.test.tsx @@ -13,7 +13,8 @@ vi.mock("next/link", () => ({ })); vi.mock("../../lib/assetUtils", async (importOriginal) => { - const actual = (await importOriginal()) as typeof import("../../lib/assetUtils"); + const actual = + (await importOriginal()) as typeof import("../../lib/assetUtils"); return { ...actual, getAssetPath: vi.fn((asset: string) => `/assets/${asset}`), diff --git a/tests/components/ContextMenu.test.tsx b/tests/components/ContextMenu.test.tsx index 0a8a621..2fb2239 100644 --- a/tests/components/ContextMenu.test.tsx +++ b/tests/components/ContextMenu.test.tsx @@ -9,11 +9,7 @@ componentTestSuite({ component: ContextMenu, name: "ContextMenu", props: { - children: ( - - Item - - ), + children: Item, } as ContextMenuProps, requiredProps: [], primaryRole: "menu", @@ -25,4 +21,3 @@ componentTestSuite({ errorState: false, }, }); - diff --git a/tests/components/ContextMenuItem.test.tsx b/tests/components/ContextMenuItem.test.tsx index fdadff2..99c01f0 100644 --- a/tests/components/ContextMenuItem.test.tsx +++ b/tests/components/ContextMenuItem.test.tsx @@ -23,4 +23,3 @@ componentTestSuite({ disabledProps: { disabled: true }, }, }); - diff --git a/tests/components/Footer.test.tsx b/tests/components/Footer.test.tsx index bb7faa2..a82ad84 100644 --- a/tests/components/Footer.test.tsx +++ b/tests/components/Footer.test.tsx @@ -60,14 +60,24 @@ describe("Footer (behavioral tests)", () => { it("renders navigation links", () => { render(