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

+15 -18
View File
@@ -38,16 +38,16 @@ describe("User Journey Integration", () => {
renderPageWithFooter();
expect(
screen.getByText(/Help your community make important decisions/),
screen.getByText(/Strong communities agree on four things early/),
).toBeInTheDocument();
const learnLinks = screen.getAllByRole("link", {
name: "Learn how CommunityRule works",
name: "Talk to a facilitator",
});
await user.click(learnLinks[0]);
await waitFor(() => {
expect(screen.getByText("How CommunityRule works")).toBeInTheDocument();
expect(screen.getByText("How CommunityRule helps")).toBeInTheDocument();
});
});
@@ -56,10 +56,10 @@ describe("User Journey Integration", () => {
renderPage();
await waitFor(() => {
expect(screen.getByText("Consensus")).toBeInTheDocument();
expect(screen.getByText("Devolution")).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 seeHowLinks = screen.getAllByRole("link", {
@@ -109,15 +109,15 @@ describe("User Journey Integration", () => {
await waitFor(() => {
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();
@@ -156,7 +156,7 @@ describe("User Journey 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();
@@ -173,11 +173,8 @@ describe("User Journey Integration", () => {
const partnerLogos = logoImages.filter(
(img) =>
img.alt?.includes("Food Not Bombs") ||
img.alt?.includes("Start COOP") ||
img.alt?.includes("Metagov") ||
img.alt?.includes("Open Civics") ||
img.alt?.includes("Mutual Aid CO") ||
img.alt?.includes("CU Boulder"),
img.alt?.includes("Boulder Street Medics") ||
img.alt?.includes("Mutual Aid Colorado"),
);
expect(partnerLogos.length).toBeGreaterThan(0);
});
@@ -193,11 +190,11 @@ describe("User Journey Integration", () => {
test("user completes the full journey from discovery to action", async () => {
renderPageWithFooter();
expect(screen.getByText("Collaborate")).toBeInTheDocument();
expect(screen.getByText("with clarity")).toBeInTheDocument();
expect(screen.getByText("Build structure")).toBeInTheDocument();
expect(screen.getByText("before you need it")).toBeInTheDocument();
await waitFor(() => {
expect(screen.getByText("How CommunityRule works")).toBeInTheDocument();
expect(screen.getByText("How CommunityRule helps")).toBeInTheDocument();
});
await waitFor(() => {