From 428f65e8264dded74714067bbc58ebe21dcdce65 Mon Sep 17 00:00:00 2001 From: Andrew Zolotukhin Date: Tue, 7 Jul 2026 06:12:11 +0000 Subject: [PATCH] Add OpenHunts footer badge --- apps/web/components/landing-page.test.tsx | 25 ++++++++++++++++++ apps/web/components/landing-page.tsx | 31 +++++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/apps/web/components/landing-page.test.tsx b/apps/web/components/landing-page.test.tsx index 861e53d..4d9b2ab 100644 --- a/apps/web/components/landing-page.test.tsx +++ b/apps/web/components/landing-page.test.tsx @@ -176,6 +176,31 @@ describe('LandingPage', () => { expect(auraPlusPlusDarkBadgeImage?.getAttribute('height')).toBe('58'); expect(auraPlusPlusDarkBadgeImage?.className).toContain('hidden'); expect(auraPlusPlusDarkBadgeImage?.className).toContain('dark:block'); + + const openHuntsBadgeLink = screen.getByRole('link', { + name: /OpenHunts Club Member/i + }); + expect(openHuntsBadgeLink).toHaveProperty( + 'href', + 'https://openhunts.com/' + ); + expect(openHuntsBadgeLink.getAttribute('target')).toBe('_blank'); + expect(openHuntsBadgeLink.getAttribute('rel')).toBe( + 'noopener noreferrer' + ); + expect(openHuntsBadgeLink.getAttribute('title')).toBe('OpenHunts Club'); + + const openHuntsBadgeImage = screen.getByAltText( + 'OpenHunts Club Member' + ); + expect(openHuntsBadgeImage.getAttribute('src')).toBe( + 'https://cdn.openhunts.com/badges/club.webp' + ); + expect(openHuntsBadgeImage.getAttribute('width')).toBe('486'); + expect(openHuntsBadgeImage.getAttribute('height')).toBe('105'); + expect(openHuntsBadgeImage.getAttribute('style')).toBe( + 'height: auto; width: 195px;' + ); expect( screen.getByText( /read or manage vendors, categories, and transactions/i diff --git a/apps/web/components/landing-page.tsx b/apps/web/components/landing-page.tsx index 0f703de..b66e9e5 100644 --- a/apps/web/components/landing-page.tsx +++ b/apps/web/components/landing-page.tsx @@ -195,6 +195,15 @@ const auraPlusPlusBadge = { width: 265 } as const; +const openHuntsBadge = { + alt: 'OpenHunts Club Member', + height: 105, + href: 'https://openhunts.com', + src: 'https://cdn.openhunts.com/badges/club.webp', + title: 'OpenHunts Club', + width: 486 +} as const; + const apiCurlExample = `curl ${openApiSpecPath} curl ${mcpEndpointPath} \\ -H "Authorization: Bearer \${XPENSER_API_KEY}"`; @@ -599,6 +608,27 @@ function AuraPlusPlusBadge() { ); } +function OpenHuntsBadge() { + return ( + + {/* biome-ignore lint/performance/noImgElement: OpenHunts provides this hosted badge snippet, and next/image would need remote config for a tiny footer badge. */} + {openHuntsBadge.alt} + + ); +} + function FooterBadges() { return (
@@ -607,6 +637,7 @@ function FooterBadges() { +
); }