Resolve test errors

This commit is contained in:
adilallo
2026-02-04 17:03:10 -07:00
parent 967fc11ae8
commit b0b9699ced
5 changed files with 21 additions and 15 deletions
+3 -3
View File
@@ -28,14 +28,14 @@ interface NumberCardProps {
} }
const NumberCard = memo<NumberCardProps>(({ number, text, size: sizeProp }) => { const NumberCard = memo<NumberCardProps>(({ number, text, size: sizeProp }) => {
// Normalize props to handle both PascalCase (Figma) and lowercase (codebase)
const size = normalizeNumberCardSize(sizeProp);
// Base classes common to all sizes // Base classes common to all sizes
const baseClasses = "bg-[var(--color-surface-inverse-primary)] rounded-[12px] shadow-lg"; const baseClasses = "bg-[var(--color-surface-inverse-primary)] rounded-[12px] shadow-lg";
// If size prop is provided, use explicit size classes // If size prop is provided, use explicit size classes
// Otherwise, use responsive breakpoints for backward compatibility // Otherwise, use responsive breakpoints for backward compatibility
if (size) { if (sizeProp) {
// Normalize props to handle both PascalCase (Figma) and lowercase (codebase)
const size = normalizeNumberCardSize(sizeProp);
// Size-specific classes // Size-specific classes
const sizeClasses = { const sizeClasses = {
Small: "flex flex-col items-end justify-center gap-4 p-5 relative", Small: "flex flex-col items-end justify-center gap-4 p-5 relative",
@@ -9,7 +9,7 @@ const RadioButtonContainer = ({
checked = false, checked = false,
mode: modeProp = "standard", mode: modeProp = "standard",
state: stateProp = "default", // This state prop is now only for static display in Storybook/Preview state: stateProp = "default", // This state prop is now only for static display in Storybook/Preview
indicator = true, // From Figma: whether to show the indicator dot indicator: _indicator = true, // From Figma: whether to show the indicator dot (currently not used in view)
disabled = false, disabled = false,
label, label,
onChange, onChange,
@@ -39,8 +39,9 @@ const SelectInputContainer = forwardRef<HTMLButtonElement, SelectInputProps>(
ref, ref,
) => { ) => {
// Normalize props to handle both PascalCase (Figma) and lowercase (codebase) // Normalize props to handle both PascalCase (Figma) and lowercase (codebase)
const labelVariant = labelVariantProp ? normalizeLabelVariant(labelVariantProp) : undefined; // Note: labelVariant and size are normalized for future use but not yet implemented in the view
const size = sizeProp ? normalizeSmallMediumLargeSize(sizeProp) : undefined; const _labelVariant = labelVariantProp ? normalizeLabelVariant(labelVariantProp) : undefined;
const _size = sizeProp ? normalizeSmallMediumLargeSize(sizeProp) : undefined;
const externalState = normalizeState(externalStateProp); const externalState = normalizeState(externalStateProp);
const generatedId = useId(); const generatedId = useId();
+6 -6
View File
@@ -85,14 +85,14 @@ describe("ContentContainer", () => {
}); });
it("applies correct width when specified", () => { it("applies correct width when specified", () => {
render(<ContentContainer post={mockPost} width="300px" size="sm" />); render(<ContentContainer post={mockPost} width="300px" size="xs" />);
const container = document.querySelector("div[class*='relative z-20']"); const container = document.querySelector("div[class*='relative z-20']");
expect(container).toHaveStyle("width: 300px"); expect(container).toHaveStyle("width: 300px");
}); });
it("applies default width when not specified", () => { it("applies default width when not specified", () => {
render(<ContentContainer post={mockPost} size="sm" />); render(<ContentContainer post={mockPost} size="xs" />);
const container = document.querySelector("div[class*='relative z-20']"); const container = document.querySelector("div[class*='relative z-20']");
expect(container).toHaveStyle("width: 200px"); expect(container).toHaveStyle("width: 200px");
@@ -183,8 +183,8 @@ describe("ContentContainer", () => {
expect(screen.getByText("Incomplete Post")).toBeInTheDocument(); expect(screen.getByText("Incomplete Post")).toBeInTheDocument();
}); });
it("applies correct responsive sizing for sm breakpoint", () => { it("applies correct responsive sizing for xs breakpoint", () => {
render(<ContentContainer post={mockPost} size="sm" />); render(<ContentContainer post={mockPost} size="xs" />);
const icon = screen.getByAltText("Icon for Test Article Title"); const icon = screen.getByAltText("Icon for Test Article Title");
expect(icon).toHaveClass("w-[60px]", "h-[30px]"); expect(icon).toHaveClass("w-[60px]", "h-[30px]");
@@ -196,8 +196,8 @@ describe("ContentContainer", () => {
expect(description).toHaveClass("text-[12px]", "leading-[16px]"); expect(description).toHaveClass("text-[12px]", "leading-[16px]");
}); });
it("applies correct responsive sizing for md breakpoint", () => { it("applies correct responsive sizing for responsive breakpoint", () => {
render(<ContentContainer post={mockPost} size="md" />); render(<ContentContainer post={mockPost} size="responsive" />);
const icon = screen.getByAltText("Icon for Test Article Title"); const icon = screen.getByAltText("Icon for Test Article Title");
expect(icon).toHaveClass("w-[60px]", "h-[30px]"); expect(icon).toHaveClass("w-[60px]", "h-[30px]");
+8 -3
View File
@@ -39,7 +39,7 @@ describe("NumberCard Component", () => {
const card = screen const card = screen
.getByText("Test Card Text") .getByText("Test Card Text")
.closest("div").parentElement; .closest("div").parentElement;
expect(card).toHaveClass("flex", "flex-col", "sm:flex-row", "lg:flex-col"); expect(card).toHaveClass("flex", "flex-col", "sm:flex-row", "sm:items-center", "lg:flex-col", "lg:items-start", "lg:justify-end", "lg:relative");
}); });
it("applies proper responsive spacing when size is not specified", () => { it("applies proper responsive spacing when size is not specified", () => {
@@ -66,7 +66,7 @@ describe("NumberCard Component", () => {
const card = screen const card = screen
.getByText("Test Card Text") .getByText("Test Card Text")
.closest("div").parentElement; .closest("div").parentElement;
expect(card).toHaveClass("lg:h-[238px]"); expect(card).toHaveClass("lg:h-[238px]", "lg:relative");
}); });
it("applies proper background and shadow", () => { it("applies proper background and shadow", () => {
@@ -128,8 +128,11 @@ describe("NumberCard Component", () => {
expect(textElement).toHaveClass( expect(textElement).toHaveClass(
"text-[24px]", "text-[24px]",
"sm:text-[24px]", "sm:text-[24px]",
"sm:leading-[24px]",
"lg:text-[24px]", "lg:text-[24px]",
"lg:leading-[24px]",
"xl:text-[32px]", "xl:text-[32px]",
"xl:leading-[32px]",
); );
}); });
@@ -156,7 +159,7 @@ describe("NumberCard Component", () => {
.closest("div").parentElement; .closest("div").parentElement;
// Mobile first approach // Mobile first approach
expect(card).toHaveClass("flex-col", "gap-4", "p-5"); expect(card).toHaveClass("flex", "flex-col", "gap-4", "p-5");
// Small breakpoint // Small breakpoint
expect(card).toHaveClass( expect(card).toHaveClass(
@@ -172,7 +175,9 @@ describe("NumberCard Component", () => {
"lg:gap-[22px]", "lg:gap-[22px]",
"lg:p-8", "lg:p-8",
"lg:items-start", "lg:items-start",
"lg:justify-end",
"lg:relative", "lg:relative",
"lg:h-[238px]",
); );
}); });