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

+17 -48
View File
@@ -18,7 +18,7 @@ test.describe("Edge Cases and Error Scenarios", () => {
await page.goto("/", { waitUntil: "domcontentloaded", timeout: 10000 });
// Page should still load eventually
await expect(page.locator("text=Collaborate")).toBeVisible({
await expect(page.locator("text=Build structure")).toBeVisible({
timeout: 10000,
});
});
@@ -38,7 +38,7 @@ test.describe("Edge Cases and Error Scenarios", () => {
await expect(body).toBeVisible();
// Verify key content is still accessible
await expect(page.locator("text=Collaborate")).toBeVisible();
await expect(page.locator("text=Build structure")).toBeVisible();
});
test("handles JavaScript errors gracefully", async ({ page }) => {
@@ -59,30 +59,19 @@ test.describe("Edge Cases and Error Scenarios", () => {
});
// Page should continue to function
await expect(page.locator("text=Collaborate")).toBeVisible();
await expect(page.locator("text=Build structure")).toBeVisible();
const learnCta = page
.getByRole("link", { name: /Learn how CommunityRule works/i })
.or(page.getByRole("button", { name: /Learn how CommunityRule works/i }));
const ctaCount = await learnCta.count();
let visibleCta = null;
for (let i = 0; i < ctaCount; i++) {
const cta = learnCta.nth(i);
if (await cta.isVisible()) {
visibleCta = cta;
break;
}
const createCta = page.getByRole("button", { name: "Create rule" });
const facilitatorCta = page.getByRole("link", {
name: /Talk to a facilitator/i,
});
const visibleCreate = createCta.filter({ has: page.locator(":visible") });
if ((await visibleCreate.count()) > 0) {
await visibleCreate.first().click();
await expect(page).toHaveURL(/\/create/);
} else {
await expect(facilitatorCta.first()).toBeVisible();
}
if (!visibleCta) {
throw new Error(
'No visible "Learn how CommunityRule works" CTA found',
);
}
await visibleCta.click();
await expect(page).toHaveURL(/\/how-it-works/);
});
test("handles missing images gracefully", async ({ page }) => {
@@ -96,29 +85,9 @@ test.describe("Edge Cases and Error Scenarios", () => {
await page.goto("/", { waitUntil: "domcontentloaded" });
// Page should still function without images
await expect(page.locator("text=Collaborate")).toBeVisible();
const learnCta = page
.getByRole("link", { name: /Learn how CommunityRule works/i })
.or(page.getByRole("button", { name: /Learn how CommunityRule works/i }));
const ctaCount = await learnCta.count();
let visibleCta = null;
for (let i = 0; i < ctaCount; i++) {
const cta = learnCta.nth(i);
if (await cta.isVisible()) {
visibleCta = cta;
break;
}
}
if (!visibleCta) {
throw new Error(
'No visible "Learn how CommunityRule works" CTA found',
);
}
await visibleCta.click();
await expect(page).toHaveURL(/\/how-it-works/);
await expect(page.locator("text=Build structure")).toBeVisible();
await expect(
page.getByRole("heading", { name: "CommunityRule Creative Team" }),
).toBeVisible();
});
});