Match Home, top nav, hero, and logo wall to the current marketing frames.

Puts Workshops in the header, pairs the hero with a static rule card and breakpoint CTAs, and shows the three pilot marks with no wall label.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
adilalloandCursor committed 2026-11-02 18:50:32 -07:00
1 parent e12e06f7ce
commit 33cdaf135c
47 files changed
+728 -527

No files matched your search

+28 -28
View File
@@ -28,33 +28,31 @@ describe("Page Flow Integration", () => {
// Hero Banner section
expect(
screen.getByRole("heading", { name: "Collaborate" }),
screen.getByRole("heading", { name: "Build structure" }),
).toBeInTheDocument();
expect(
screen.getByRole("heading", { name: "with clarity" }),
screen.getByRole("heading", { name: "before you need it" }),
).toBeInTheDocument();
expect(
screen.getByText(
"Help your community make important decisions in a way that reflects its unique values.",
"Strong communities agree on four things early. They settle how they talk, who belongs, how they decide and what happens when they disagree. Write yours down together.",
),
).toBeInTheDocument();
const ctaButtons = screen.getAllByRole("link", {
name: "Learn how CommunityRule works",
name: "Talk to a facilitator",
});
expect(ctaButtons.length).toBeGreaterThan(0);
await waitFor(() => {
expect(screen.getByAltText("Food Not Bombs")).toBeInTheDocument();
});
expect(screen.getByAltText("Start COOP")).toBeInTheDocument();
expect(screen.getByAltText("Metagov")).toBeInTheDocument();
expect(screen.getByAltText("Open Civics")).toBeInTheDocument();
expect(screen.getByAltText("Mutual Aid CO")).toBeInTheDocument();
expect(screen.getByAltText("CU Boulder")).toBeInTheDocument();
expect(screen.getByAltText("Boulder Street Medics")).toBeInTheDocument();
expect(screen.getByAltText("Mutual Aid Colorado")).toBeInTheDocument();
expect(screen.queryByAltText("Start COOP")).not.toBeInTheDocument();
await waitFor(() => {
expect(
screen.getByRole("heading", { name: /How CommunityRule works/ }),
screen.getByRole("heading", { name: /How CommunityRule helps/ }),
).toBeInTheDocument();
});
expect(
@@ -63,25 +61,27 @@ describe("Page Flow Integration", () => {
),
).toBeInTheDocument();
expect(
screen.getByText("Document how your community makes decisions"),
screen.getByText("See what has worked for other communities"),
).toBeInTheDocument();
expect(
screen.getByText("Build an operating manual for a successful community"),
screen.getByText("Decide how you will decide, while things are calm"),
).toBeInTheDocument();
expect(
screen.getByText(
"Get a link to your manual for your group to review and evolve",
"Invite your members and change it together as you grow",
),
).toBeInTheDocument();
await waitFor(() => {
expect(screen.getByRole("heading", { name: "Consensus" })).toBeInTheDocument();
expect(
screen.getByRole("heading", { name: "Devolution" }),
).toBeInTheDocument();
});
expect(
screen.getByRole("heading", { name: "Do-ocracy" }),
screen.getByRole("heading", { name: "Consensus" }),
).toBeInTheDocument();
expect(
screen.getByRole("heading", { name: "Devolution" }),
screen.getByRole("heading", { name: "Do-ocracy" }),
).toBeInTheDocument();
expect(
screen.getByRole("heading", { name: "Quadratic Governance" }),
@@ -96,7 +96,7 @@ describe("Page Flow Integration", () => {
});
expect(
screen.getByText(
"Every group runs into the same knots. CommunityRule gives you a way through, and a written record of what you decided.",
"Every community runs into the same knots. CommunityRule gives you a way through, and a written record of what you decided.",
),
).toBeInTheDocument();
@@ -120,11 +120,11 @@ describe("Page Flow Integration", () => {
renderPage();
const ctaLinks = screen.getAllByRole("link", {
name: "Learn how CommunityRule works",
name: "Talk to a facilitator",
});
const ctaLink = ctaLinks[0];
expect(ctaLink).toBeInTheDocument();
expect(ctaLink).toHaveAttribute("href", "/how-it-works");
expect(ctaLink).toHaveAttribute("href", "/workshops");
await user.click(ctaLink);
expect(ctaLink).toBeInTheDocument();
@@ -135,13 +135,13 @@ describe("Page Flow Integration", () => {
await waitFor(() => {
const cards = screen.getAllByText(
/Document how your community|Build an operating manual|Get a link to your manual/,
/See what has worked for other communities|Decide how you will decide|Invite your members and change it together/,
);
expect(cards.length).toBeGreaterThan(0);
});
const cards = screen.getAllByText(
/Document how your community|Build an operating manual|Get a link to your manual/,
/See what has worked for other communities|Decide how you will decide|Invite your members and change it together/,
);
expect(cards.length).toBeGreaterThan(0);
@@ -153,11 +153,11 @@ describe("Page Flow Integration", () => {
renderPage();
await waitFor(() => {
expect(screen.getByText("Consensus")).toBeInTheDocument();
expect(screen.getByText("Devolution")).toBeInTheDocument();
});
expect(screen.queryByText("Solidarity Network")).not.toBeInTheDocument();
expect(screen.getByText("Do-ocracy")).toBeInTheDocument();
expect(screen.getByText("Devolution")).toBeInTheDocument();
expect(screen.getAllByText("Consensus").length).toBeGreaterThan(0);
expect(screen.getAllByText("Do-ocracy").length).toBeGreaterThan(0);
expect(screen.getByText("Quadratic Governance")).toBeInTheDocument();
const seeAll = screen.getByRole("link", { name: "See all templates" });
@@ -189,7 +189,7 @@ describe("Page Flow Integration", () => {
expect(headings.length).toBeGreaterThan(4);
const mainContent = screen.getByText(
/Help your community make important decisions/,
/Strong communities agree on four things early/,
);
expect(mainContent).toBeInTheDocument();
});
@@ -220,15 +220,15 @@ describe("Page Flow Integration", () => {
renderPage();
expect(
screen.getByText(/Help your community make important decisions/),
screen.getByText(/Strong communities agree on four things early/),
).toBeInTheDocument();
await waitFor(() => {
expect(screen.getByText("How CommunityRule works")).toBeInTheDocument();
expect(screen.getByText("How CommunityRule helps")).toBeInTheDocument();
});
await waitFor(() => {
expect(screen.getByText("Consensus")).toBeInTheDocument();
expect(screen.getByText("Devolution")).toBeInTheDocument();
});
await waitFor(() => {