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:
1 parent
e12e06f7ce
commit
33cdaf135c
47 files changed
+728
-527
No files matched your search
@@ -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(() => {
|
||||
|
||||
Reference in new issue
Block a user