diff --git a/apps/web/components/landing-page.test.tsx b/apps/web/components/landing-page.test.tsx index 95d05bd..f6add8a 100644 --- a/apps/web/components/landing-page.test.tsx +++ b/apps/web/components/landing-page.test.tsx @@ -213,6 +213,45 @@ describe('LandingPage', () => { expect(toolfioDarkBadgeImage?.className).toContain('hidden'); expect(toolfioDarkBadgeImage?.className).toContain('dark:block'); + const earlyHuntBadgeLink = screen.getByRole('link', { + name: /Featured on EarlyHunt/i + }); + expect(earlyHuntBadgeLink).toHaveProperty( + 'href', + 'https://earlyhunt.com/project/xpenser' + ); + expect(earlyHuntBadgeLink.getAttribute('target')).toBe('_blank'); + expect(earlyHuntBadgeLink.getAttribute('rel')).toBe( + 'noopener noreferrer' + ); + + const earlyHuntBadgeImages = screen.getAllByAltText( + 'Featured on EarlyHunt' + ); + expect(earlyHuntBadgeImages).toHaveLength(2); + + const earlyHuntLightBadgeImage = earlyHuntBadgeImages.find( + image => + image.getAttribute('src') === + 'https://earlyhunt.com/badges/earlyhunt-badge-light.svg' + ); + expect(earlyHuntLightBadgeImage).toBeTruthy(); + expect(earlyHuntLightBadgeImage?.getAttribute('width')).toBe('265'); + expect(earlyHuntLightBadgeImage?.getAttribute('height')).toBe('58'); + expect(earlyHuntLightBadgeImage?.className).toContain('block'); + expect(earlyHuntLightBadgeImage?.className).toContain('dark:hidden'); + + const earlyHuntDarkBadgeImage = earlyHuntBadgeImages.find( + image => + image.getAttribute('src') === + 'https://earlyhunt.com/badges/earlyhunt-badge-dark.svg' + ); + expect(earlyHuntDarkBadgeImage).toBeTruthy(); + expect(earlyHuntDarkBadgeImage?.getAttribute('width')).toBe('265'); + expect(earlyHuntDarkBadgeImage?.getAttribute('height')).toBe('58'); + expect(earlyHuntDarkBadgeImage?.className).toContain('hidden'); + expect(earlyHuntDarkBadgeImage?.className).toContain('dark:block'); + const openHuntsBadgeLink = screen.getByRole('link', { name: /OpenHunts Club Member/i }); diff --git a/apps/web/components/landing-page.tsx b/apps/web/components/landing-page.tsx index 48b9730..f38c0d6 100644 --- a/apps/web/components/landing-page.tsx +++ b/apps/web/components/landing-page.tsx @@ -204,6 +204,15 @@ const toolfioBadge = { width: 200 } as const; +const earlyHuntBadge = { + alt: 'Featured on EarlyHunt', + darkSrc: 'https://earlyhunt.com/badges/earlyhunt-badge-dark.svg', + height: 58, + href: 'https://earlyhunt.com/project/xpenser', + lightSrc: 'https://earlyhunt.com/badges/earlyhunt-badge-light.svg', + width: 265 +} as const; + const openHuntsBadge = { alt: 'OpenHunts Club Member', height: 105, @@ -646,6 +655,35 @@ function ToolfioBadge() { ); } +function EarlyHuntBadge() { + return ( + + {/* biome-ignore lint/performance/noImgElement: EarlyHunt provides this hosted badge snippet, and next/image would need remote config for a tiny footer badge. */} + {earlyHuntBadge.alt} + {/* biome-ignore lint/performance/noImgElement: EarlyHunt provides this hosted badge snippet, and next/image would need remote config for a tiny footer badge. */} + {earlyHuntBadge.alt} + + ); +} + function OpenHuntsBadge() { return ( + );