Files
SnapOtter/tests/e2e/sponsor-button.spec.ts
T
SnapOtterandGitHub 7b04317ed2 feat: add a Keep it free sponsor button to the top nav (#427)
Adds a prominent Keep it free sponsor button to the top nav, linking to https://github.com/sponsors/snapotter-hq. Solid orange pill on desktop (left of the avatar), orange heart icon on mobile. Opens in a new tab with rel=noopener noreferrer, so no referrer or user data leaks, and it adds no passive network activity (offline-mode compatible). Fires an opt-in, property-less sponsor_clicked analytics event. Adds sidebar.sponsor and a11y.sponsorLink across all 21 locales.

Claude-Session: https://claude.ai/code/session_01DnYLLA5z4Uf1GDeEPENVgr
2026-07-04 08:48:16 +00:00

20 lines
713 B
TypeScript

import { expect, test } from "./helpers";
const SPONSOR_URL = "https://github.com/sponsors/snapotter-hq";
test.describe("Sponsor button", () => {
// Pin a desktop viewport so the full pill (with visible text) renders,
// not the mobile icon-only form.
test.use({ viewport: { width: 1280, height: 720 } });
test("top nav links to GitHub Sponsors with safe rel", async ({ page }) => {
await page.goto("/");
const link = page.locator(`a[href="${SPONSOR_URL}"]`);
await expect(link).toBeVisible();
await expect(link).toHaveAttribute("target", "_blank");
await expect(link).toHaveAttribute("rel", "noopener noreferrer");
await expect(link).toContainText(/keep it free/i);
});
});