Fix prettier formatting issues

This commit is contained in:
adilallo
2025-08-30 13:46:35 -06:00
parent 1e795e1340
commit 12deae75e8
97 changed files with 335281 additions and 54857 deletions
@@ -16,18 +16,18 @@ describe("ContentLockup Integration", () => {
subtitle="Get Started"
description="This is a description"
ctaText="Get Started"
/>
/>,
);
expect(
screen.getByRole("heading", { name: "Welcome" })
screen.getByRole("heading", { name: "Welcome" }),
).toBeInTheDocument();
expect(
screen.getByRole("heading", { name: "Get Started" })
screen.getByRole("heading", { name: "Get Started" }),
).toBeInTheDocument();
expect(screen.getByText("This is a description")).toBeInTheDocument();
expect(screen.getAllByRole("button", { name: "Get Started" })).toHaveLength(
3
3,
);
});
@@ -40,18 +40,18 @@ describe("ContentLockup Integration", () => {
description="Feature description"
linkText="Learn More"
linkHref="/learn"
/>
/>,
);
expect(
screen.getByRole("heading", { name: "Feature Title" })
screen.getByRole("heading", { name: "Feature Title" }),
).toBeInTheDocument();
expect(
screen.getByRole("link", { name: "Learn More" })
screen.getByRole("link", { name: "Learn More" }),
).toBeInTheDocument();
expect(screen.getByRole("link", { name: "Learn More" })).toHaveAttribute(
"href",
"/learn"
"/learn",
);
});
@@ -61,14 +61,14 @@ describe("ContentLockup Integration", () => {
variant="ask"
title="Ask Question"
subtitle="Ask subtitle"
/>
/>,
);
expect(
screen.getByRole("heading", { name: "Ask Question" })
screen.getByRole("heading", { name: "Ask Question" }),
).toBeInTheDocument();
expect(
screen.getByRole("heading", { name: "Ask subtitle" })
screen.getByRole("heading", { name: "Ask subtitle" }),
).toBeInTheDocument();
// Ask variant should not have description or CTA
expect(screen.queryByRole("button")).not.toBeInTheDocument();
@@ -81,7 +81,7 @@ describe("ContentLockup Integration", () => {
title="Left Aligned"
subtitle="Subtitle"
alignment="left"
/>
/>,
);
const container = screen
@@ -92,7 +92,7 @@ describe("ContentLockup Integration", () => {
test("renders responsive buttons correctly", () => {
render(
<ContentLockup variant="hero" title="Responsive" ctaText="Click Me" />
<ContentLockup variant="hero" title="Responsive" ctaText="Click Me" />,
);
// Should render all three button variants for different breakpoints
@@ -107,7 +107,7 @@ describe("ContentLockup Integration", () => {
title="Custom Button"
ctaText="Custom"
buttonClassName="custom-button-class"
/>
/>,
);
const buttons = screen.getAllByRole("button", { name: "Custom" });
@@ -119,7 +119,7 @@ describe("ContentLockup Integration", () => {
render(<ContentLockup variant="hero" title="Minimal" />);
expect(
screen.getByRole("heading", { name: "Minimal" })
screen.getByRole("heading", { name: "Minimal" }),
).toBeInTheDocument();
// Should not crash without subtitle, description, or CTA
expect(screen.queryByRole("button")).not.toBeInTheDocument();
@@ -146,7 +146,7 @@ describe("ContentLockup Integration", () => {
title="Accessible"
linkText="Accessible Link"
linkHref="/accessible"
/>
/>,
);
const link = screen.getByRole("link", { name: "Accessible Link" });
@@ -49,26 +49,26 @@ describe("Component Interactions Integration", () => {
<div>
<HeroBanner {...heroData} />
<NumberedCards {...numberedCardsData} />
</div>
</div>,
);
// Hero introduces the concept
expect(
screen.getByText(/Help your community make important decisions/)
screen.getByText(/Help your community make important decisions/),
).toBeInTheDocument();
// Numbered cards explain the process
expect(screen.getByText("How CommunityRule works")).toBeInTheDocument();
expect(
screen.getByText("Document how your community makes decisions")
screen.getByText("Document how your community makes decisions"),
).toBeInTheDocument();
expect(
screen.getByText("Build an operating manual for a successful community")
screen.getByText("Build an operating manual for a successful community"),
).toBeInTheDocument();
expect(
screen.getByText(
"Get a link to your manual for your group to review and evolve"
)
"Get a link to your manual for your group to review and evolve",
),
).toBeInTheDocument();
});
@@ -83,7 +83,7 @@ describe("Component Interactions Integration", () => {
<div>
<RuleStack />
<FeatureGrid {...featureGridData} />
</div>
</div>,
);
// Rule stack shows governance options
@@ -94,12 +94,12 @@ describe("Component Interactions Integration", () => {
// Feature grid provides support context
expect(
screen.getByText("We've got your back, every step of the way")
screen.getByText("We've got your back, every step of the way"),
).toBeInTheDocument();
expect(
screen.getByText(
"Use our toolkit to improve, document, and evolve your organization."
)
"Use our toolkit to improve, document, and evolve your organization.",
),
).toBeInTheDocument();
});
@@ -108,13 +108,13 @@ describe("Component Interactions Integration", () => {
// Quote provides credibility and social proof
expect(
screen.getByText(/The rules of decision-making must be open/)
screen.getByText(/The rules of decision-making must be open/),
).toBeInTheDocument();
// Should have proper attribution
expect(screen.getByText("Jo Freeman")).toBeInTheDocument();
expect(
screen.getByText("The Tyranny of Structurelessness")
screen.getByText("The Tyranny of Structurelessness"),
).toBeInTheDocument();
});
@@ -131,10 +131,10 @@ describe("Component Interactions Integration", () => {
// Provides help for users who need assistance
expect(screen.getByText("Still have questions?")).toBeInTheDocument();
expect(
screen.getByText("Get answers from an experienced organizer")
screen.getByText("Get answers from an experienced organizer"),
).toBeInTheDocument();
expect(
screen.getByRole("link", { name: /Ask an organizer/i })
screen.getByRole("link", { name: /Ask an organizer/i }),
).toBeInTheDocument();
});
@@ -160,7 +160,7 @@ describe("Component Interactions Integration", () => {
subtitle="Test help subtitle"
buttonText="Test Help Button"
/>
</div>
</div>,
);
// All components should render without errors
@@ -169,7 +169,7 @@ describe("Component Interactions Integration", () => {
expect(screen.getByText("Consensus clusters")).toBeInTheDocument();
expect(screen.getByText("Test Features")).toBeInTheDocument();
expect(
screen.getByText(/The rules of decision-making must be open/)
screen.getByText(/The rules of decision-making must be open/),
).toBeInTheDocument();
expect(screen.getByText("Test Help")).toBeInTheDocument();
});
@@ -209,7 +209,7 @@ describe("Component Interactions Integration", () => {
<NumberedCards {...testData.cards} />
<FeatureGrid {...testData.features} />
<AskOrganizer {...testData.help} />
</div>
</div>,
);
// Verify all data is passed correctly
@@ -217,7 +217,7 @@ describe("Component Interactions Integration", () => {
expect(screen.getByText("Test Subtitle")).toBeInTheDocument();
expect(screen.getByText("Test description")).toBeInTheDocument();
expect(
screen.getAllByRole("button", { name: "Test CTA" }).length
screen.getAllByRole("button", { name: "Test CTA" }).length,
).toBeGreaterThan(0);
expect(screen.getByText("Test Cards")).toBeInTheDocument();
expect(screen.getByText("Card 1")).toBeInTheDocument();
@@ -225,7 +225,7 @@ describe("Component Interactions Integration", () => {
expect(screen.getByText("Test Features")).toBeInTheDocument();
expect(screen.getByText("Test Help")).toBeInTheDocument();
expect(
screen.getByRole("link", { name: /Test Help Button/i })
screen.getByRole("link", { name: /Test Help Button/i }),
).toBeInTheDocument();
});
@@ -258,7 +258,7 @@ describe("Component Interactions Integration", () => {
buttonText="Contact us"
buttonHref="#contact"
/>
</div>
</div>,
);
// Test interaction flow
@@ -281,7 +281,7 @@ describe("Component Interactions Integration", () => {
expect(screen.getByText("Consensus clusters")).toBeInTheDocument();
expect(screen.getByText("Features")).toBeInTheDocument();
expect(
screen.getByText(/The rules of decision-making must be open/)
screen.getByText(/The rules of decision-making must be open/),
).toBeInTheDocument();
expect(screen.getByText("Need help?")).toBeInTheDocument();
});
@@ -294,7 +294,7 @@ describe("Component Interactions Integration", () => {
<NumberedCards title="Minimal Cards" cards={[]} />
<FeatureGrid title="Minimal Features" />
<AskOrganizer title="Minimal Help" />
</div>
</div>,
);
// Components should render without crashing
@@ -331,7 +331,7 @@ describe("Component Interactions Integration", () => {
subtitle="Accessible help subtitle"
buttonText="Accessible Help Button"
/>
</div>
</div>,
);
// Check for proper heading hierarchy
+19 -17
View File
@@ -14,7 +14,7 @@ describe("Layout Integration", () => {
<div>
<Header />
<Footer />
</div>
</div>,
);
// Check that CommunityRule branding appears in both header and footer
@@ -30,19 +30,21 @@ describe("Layout Integration", () => {
<div>
<Header />
<Footer />
</div>
</div>,
);
// Header navigation items
expect(
screen.getAllByRole("menuitem", { name: "Navigate to Use cases page" })
.length
.length,
).toBeGreaterThan(0);
expect(
screen.getAllByRole("menuitem", { name: "Navigate to Learn page" }).length
screen.getAllByRole("menuitem", { name: "Navigate to Learn page" })
.length,
).toBeGreaterThan(0);
expect(
screen.getAllByRole("menuitem", { name: "Navigate to About page" }).length
screen.getAllByRole("menuitem", { name: "Navigate to About page" })
.length,
).toBeGreaterThan(0);
// Footer navigation items (should be present in footer as well)
@@ -92,23 +94,23 @@ describe("Layout Integration", () => {
// Contact information
expect(screen.getByText("medlab@colorado.edu")).toBeInTheDocument();
expect(
screen.getByRole("link", { name: "medlab@colorado.edu" })
screen.getByRole("link", { name: "medlab@colorado.edu" }),
).toHaveAttribute("href", "mailto:medlab@colorado.edu");
// Social media links
expect(
screen.getByRole("link", { name: "Follow us on Bluesky" })
screen.getByRole("link", { name: "Follow us on Bluesky" }),
).toBeInTheDocument();
expect(
screen.getByRole("link", { name: "Follow us on GitLab" })
screen.getByRole("link", { name: "Follow us on GitLab" }),
).toBeInTheDocument();
// Legal links
expect(
screen.getByRole("link", { name: "Privacy Policy" })
screen.getByRole("link", { name: "Privacy Policy" }),
).toBeInTheDocument();
expect(
screen.getByRole("link", { name: "Terms of Service" })
screen.getByRole("link", { name: "Terms of Service" }),
).toBeInTheDocument();
});
@@ -134,7 +136,7 @@ describe("Layout Integration", () => {
<div>
<Header />
<Footer />
</div>
</div>,
);
// Header should have banner role
@@ -155,7 +157,7 @@ describe("Layout Integration", () => {
<div>
<Header />
<Footer />
</div>
</div>,
);
// Header should have responsive navigation elements
@@ -172,7 +174,7 @@ describe("Layout Integration", () => {
<div>
<Header />
<Footer />
</div>
</div>,
);
// Get all interactive elements
@@ -195,7 +197,7 @@ describe("Layout Integration", () => {
<div>
<Header />
<Footer />
</div>
</div>,
);
// Header provides main navigation
@@ -215,7 +217,7 @@ describe("Layout Integration", () => {
<div>
<Header />
<Footer />
</div>
</div>,
);
// Main navigation in header
@@ -228,13 +230,13 @@ describe("Layout Integration", () => {
(link) =>
link.textContent?.includes("Use cases") ||
link.textContent?.includes("Learn") ||
link.textContent?.includes("About")
link.textContent?.includes("About"),
);
expect(navigationLinks.length).toBeGreaterThan(0);
// Contact information in footer
expect(
screen.getByRole("link", { name: "medlab@colorado.edu" })
screen.getByRole("link", { name: "medlab@colorado.edu" }),
).toBeInTheDocument();
});
});
@@ -13,15 +13,15 @@ describe("Page Flow Integration", () => {
// Hero Banner section
expect(
screen.getByRole("heading", { name: "Collaborate" })
screen.getByRole("heading", { name: "Collaborate" }),
).toBeInTheDocument();
expect(
screen.getByRole("heading", { name: "with clarity" })
screen.getByRole("heading", { name: "with clarity" }),
).toBeInTheDocument();
expect(
screen.getByText(
"Help your community make important decisions in a way that reflects its unique values."
)
"Help your community make important decisions in a way that reflects its unique values.",
),
).toBeInTheDocument();
// Check that CTA button exists (multiple sizes for responsive design)
const ctaButtons = screen.getAllByRole("button", {
@@ -39,65 +39,65 @@ describe("Page Flow Integration", () => {
// Numbered Cards section
expect(
screen.getByRole("heading", { name: /How CommunityRule works/ })
screen.getByRole("heading", { name: /How CommunityRule works/ }),
).toBeInTheDocument();
expect(
screen.getByText(
"Here's a quick overview of the process, from start to finish."
)
"Here's a quick overview of the process, from start to finish.",
),
).toBeInTheDocument();
expect(
screen.getByText("Document how your community makes decisions")
screen.getByText("Document how your community makes decisions"),
).toBeInTheDocument();
expect(
screen.getByText("Build an operating manual for a successful community")
screen.getByText("Build an operating manual for a successful community"),
).toBeInTheDocument();
expect(
screen.getByText(
"Get a link to your manual for your group to review and evolve"
)
"Get a link to your manual for your group to review and evolve",
),
).toBeInTheDocument();
// Rule Stack section
expect(
screen.getByRole("heading", { name: "Consensus clusters" })
screen.getByRole("heading", { name: "Consensus clusters" }),
).toBeInTheDocument();
expect(
screen.getByRole("heading", { name: "Elected Board" })
screen.getByRole("heading", { name: "Elected Board" }),
).toBeInTheDocument();
expect(
screen.getByRole("heading", { name: "Consensus" })
screen.getByRole("heading", { name: "Consensus" }),
).toBeInTheDocument();
expect(
screen.getByRole("heading", { name: "Petition" })
screen.getByRole("heading", { name: "Petition" }),
).toBeInTheDocument();
// Feature Grid section
expect(
screen.getByRole("heading", {
name: "We've got your back, every step of the way",
})
}),
).toBeInTheDocument();
expect(
screen.getByText(
"Use our toolkit to improve, document, and evolve your organization."
)
"Use our toolkit to improve, document, and evolve your organization.",
),
).toBeInTheDocument();
// Quote Block section
expect(
screen.getByText(/The rules of decision-making must be open/)
screen.getByText(/The rules of decision-making must be open/),
).toBeInTheDocument();
// Ask Organizer section
expect(
screen.getByRole("heading", { name: "Still have questions?" })
screen.getByRole("heading", { name: "Still have questions?" }),
).toBeInTheDocument();
expect(
screen.getByText("Get answers from an experienced organizer")
screen.getByText("Get answers from an experienced organizer"),
).toBeInTheDocument();
expect(
screen.getByRole("link", { name: /Ask an organizer/i })
screen.getByRole("link", { name: /Ask an organizer/i }),
).toBeInTheDocument();
});
@@ -125,7 +125,7 @@ describe("Page Flow Integration", () => {
// Check that all three cards are rendered
const cards = screen.getAllByText(
/Document how your community|Build an operating manual|Get a link to your manual/
/Document how your community|Build an operating manual|Get a link to your manual/,
);
expect(cards).toHaveLength(3);
@@ -167,7 +167,7 @@ describe("Page Flow Integration", () => {
// Check that main content is properly structured
const mainContent = screen.getByText(
/Help your community make important decisions/
/Help your community make important decisions/,
);
expect(mainContent).toBeInTheDocument();
});
@@ -194,7 +194,7 @@ describe("Page Flow Integration", () => {
// Verify the logical flow of information
// 1. Hero introduces the concept
expect(
screen.getByText(/Help your community make important decisions/)
screen.getByText(/Help your community make important decisions/),
).toBeInTheDocument();
// 2. How it works section explains the process
@@ -205,12 +205,12 @@ describe("Page Flow Integration", () => {
// 4. Features highlight benefits
expect(
screen.getByText("We've got your back, every step of the way")
screen.getByText("We've got your back, every step of the way"),
).toBeInTheDocument();
// 5. Quote provides social proof
expect(
screen.getByText(/The rules of decision-making must be open/)
screen.getByText(/The rules of decision-making must be open/),
).toBeInTheDocument();
// 6. Call to action for help
@@ -17,12 +17,12 @@ describe("User Journey Integration", () => {
<Header />
<Page />
<Footer />
</div>
</div>,
);
// User sees the main value proposition
expect(
screen.getByText(/Help your community make important decisions/)
screen.getByText(/Help your community make important decisions/),
).toBeInTheDocument();
// User clicks the main CTA to learn more
@@ -64,7 +64,7 @@ describe("User Journey Integration", () => {
<Header />
<Page />
<Footer />
</div>
</div>,
);
// User clicks on navigation links in header (check that they exist and are clickable)
@@ -73,7 +73,7 @@ describe("User Journey Integration", () => {
(link) =>
link.textContent?.includes("Use Cases") ||
link.textContent?.includes("Learn") ||
link.textContent?.includes("About")
link.textContent?.includes("About"),
);
// Test that navigation links are present and clickable
@@ -90,7 +90,7 @@ describe("User Journey Integration", () => {
// User scrolls to the bottom and sees the help section
expect(screen.getByText("Still have questions?")).toBeInTheDocument();
expect(
screen.getByText("Get answers from an experienced organizer")
screen.getByText("Get answers from an experienced organizer"),
).toBeInTheDocument();
// User clicks the ask organizer button (it's actually a link, not a button)
@@ -105,15 +105,15 @@ describe("User Journey Integration", () => {
// User reads through the process steps
expect(
screen.getByText("Document how your community makes decisions")
screen.getByText("Document how your community makes decisions"),
).toBeInTheDocument();
expect(
screen.getByText("Build an operating manual for a successful community")
screen.getByText("Build an operating manual for a successful community"),
).toBeInTheDocument();
expect(
screen.getByText(
"Get a link to your manual for your group to review and evolve"
)
"Get a link to your manual for your group to review and evolve",
),
).toBeInTheDocument();
// User sees the step numbers
@@ -128,7 +128,7 @@ describe("User Journey Integration", () => {
<Header />
<Page />
<Footer />
</div>
</div>,
);
// User finds contact email in footer
@@ -153,17 +153,17 @@ describe("User Journey Integration", () => {
// User sees the features section
expect(
screen.getByText("We've got your back, every step of the way")
screen.getByText("We've got your back, every step of the way"),
).toBeInTheDocument();
expect(
screen.getByText(
"Use our toolkit to improve, document, and evolve your organization."
)
"Use our toolkit to improve, document, and evolve your organization.",
),
).toBeInTheDocument();
// User sees the testimonial/quote (check for the actual quote content)
expect(
screen.getByText(/The rules of decision-making must be open/)
screen.getByText(/The rules of decision-making must be open/),
).toBeInTheDocument();
});
@@ -173,7 +173,7 @@ describe("User Journey Integration", () => {
<div>
<Page />
<Footer />
</div>
</div>,
);
// User sees the logo wall with partner logos (check for any logo images)
@@ -185,7 +185,7 @@ describe("User Journey Integration", () => {
img.alt?.includes("Metagov") ||
img.alt?.includes("Open Civics") ||
img.alt?.includes("Mutual Aid CO") ||
img.alt?.includes("CU Boulder")
img.alt?.includes("CU Boulder"),
);
expect(partnerLogos.length).toBeGreaterThan(0);
@@ -203,7 +203,7 @@ describe("User Journey Integration", () => {
<Header />
<Page />
<Footer />
</div>
</div>,
);
// 1. User discovers the application
@@ -218,12 +218,12 @@ describe("User Journey Integration", () => {
// 4. User sees features and benefits
expect(
screen.getByText("We've got your back, every step of the way")
screen.getByText("We've got your back, every step of the way"),
).toBeInTheDocument();
// 5. User sees social proof
expect(
screen.getByText(/The rules of decision-making must be open/)
screen.getByText(/The rules of decision-making must be open/),
).toBeInTheDocument();
// 6. User can take action
@@ -243,7 +243,7 @@ describe("User Journey Integration", () => {
<Header />
<Page />
<Footer />
</div>
</div>,
);
// Header navigation
@@ -256,7 +256,7 @@ describe("User Journey Integration", () => {
(link) =>
link.textContent?.includes("Use cases") ||
link.textContent?.includes("Learn") ||
link.textContent?.includes("About")
link.textContent?.includes("About"),
);
expect(navigationLinks.length).toBeGreaterThan(0);
@@ -273,7 +273,7 @@ describe("User Journey Integration", () => {
<Header />
<Page />
<Footer />
</div>
</div>,
);
// Test all interactive elements