From f60df15c2b60ab2bcaac9dab8dc24db195c409a8 Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Tue, 10 Feb 2026 22:13:08 -0700 Subject: [PATCH] Review template --- app/create/final-review/page.tsx | 26 +++++++++++++++ app/create/review/page.tsx | 34 +++++++++++++++++++ stories/pages/ReviewPage.stories.js | 39 ++++++++++++++++++++++ tests/components/ReviewPage.test.tsx | 49 ++++++++++++++++++++++++++++ 4 files changed, 148 insertions(+) create mode 100644 app/create/final-review/page.tsx create mode 100644 app/create/review/page.tsx create mode 100644 stories/pages/ReviewPage.stories.js create mode 100644 tests/components/ReviewPage.test.tsx diff --git a/app/create/final-review/page.tsx b/app/create/final-review/page.tsx new file mode 100644 index 0000000..bd12c20 --- /dev/null +++ b/app/create/final-review/page.tsx @@ -0,0 +1,26 @@ +"use client"; + +import { useMediaQuery } from "../../hooks/useMediaQuery"; +import HeaderLockup from "../../components/type/HeaderLockup"; + +/** + * Final review step (right before completed). + * Figma: 20907-212767 + */ +export default function FinalReviewPage() { + const isMdOrLarger = useMediaQuery("(min-width: 640px)"); + + return ( +
+
+ + {/* Content area: summary or checklist can be added per Figma */} +
+
+ ); +} diff --git a/app/create/review/page.tsx b/app/create/review/page.tsx new file mode 100644 index 0000000..13c7d21 --- /dev/null +++ b/app/create/review/page.tsx @@ -0,0 +1,34 @@ +"use client"; + +import HeaderLockup from "../../components/type/HeaderLockup"; +import RuleCard from "../../components/cards/RuleCard"; + +/** Mid-flow review step (after upload, before compact-cards). */ +export default function ReviewPage() { + return ( +
+
+
+ +
+
+ +
+
+
+ ); +} diff --git a/stories/pages/ReviewPage.stories.js b/stories/pages/ReviewPage.stories.js new file mode 100644 index 0000000..e86d37c --- /dev/null +++ b/stories/pages/ReviewPage.stories.js @@ -0,0 +1,39 @@ +import ReviewPage from "../../app/create/review/page"; + +export default { + title: "Pages/Create Flow/Review", + component: ReviewPage, + parameters: { + layout: "fullscreen", + docs: { + description: { + component: + "Mid-flow review step (after upload). 640px+: HeaderLockup left (L), RuleCard right (L, collapsed). Below 640px: single column with HeaderLockup M and RuleCard M. Figma: 19688-13891, 19706-12120.", + }, + }, + }, + decorators: [ + (Story) => ( +
+ +
+ ), + ], + tags: ["autodocs"], +}; + +export const Desktop = { + parameters: { + viewport: { + defaultViewport: "desktop", + }, + }, +}; + +export const Mobile = { + parameters: { + viewport: { + defaultViewport: "mobile1", + }, + }, +}; diff --git a/tests/components/ReviewPage.test.tsx b/tests/components/ReviewPage.test.tsx new file mode 100644 index 0000000..f902024 --- /dev/null +++ b/tests/components/ReviewPage.test.tsx @@ -0,0 +1,49 @@ +import React from "react"; +import { describe, it, expect } from "vitest"; +import { renderWithProviders as render, screen } from "../utils/test-utils"; +import "@testing-library/jest-dom/vitest"; +import ReviewPage from "../../app/create/review/page"; + +describe("ReviewPage", () => { + it("renders without crashing", () => { + render(); + expect(screen.getByRole("heading", { level: 1 })).toBeInTheDocument(); + }); + + it("renders HeaderLockup with expected title", () => { + render(); + expect( + screen.getByRole("heading", { name: "Your community is added - congrats!" }), + ).toBeInTheDocument(); + }); + + it("renders HeaderLockup with expected description", () => { + render(); + expect( + screen.getByText( + /In the next section, we'll go through membership, decision-making, conflict resolution, and community values and create a custom operating manual for your organization based on the specifics you just shared./i, + ), + ).toBeInTheDocument(); + }); + + it("renders RuleCard with title", () => { + render(); + expect(screen.getByText("Mutual Aid Mondays")).toBeInTheDocument(); + }); + + it("renders RuleCard with description", () => { + render(); + expect( + screen.getByText( + /Mutual Aid Monday is a grassroots community in Denver, founded in November 2020 by Kelsang Virya, dedicated to supporting neighbors experiencing homelessness./i, + ), + ).toBeInTheDocument(); + }); + + it("renders RuleCard as a button (card is interactive)", () => { + render(); + const buttons = screen.getAllByRole("button"); + expect(buttons.length).toBeGreaterThanOrEqual(1); + expect(buttons.some((el) => el.textContent?.includes("Mutual Aid Mondays"))).toBe(true); + }); +});