Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions apps/web/src/app/page.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import React from 'react';
import { renderToStaticMarkup } from 'react-dom/server';
import { describe, expect, it, vi } from 'vitest';
import HomePage from './page';

(globalThis as typeof globalThis & { React?: typeof React }).React = React;

vi.mock('next/link', () => ({
default: ({ children, href, ...props }: React.AnchorHTMLAttributes<HTMLAnchorElement>) => (
<a href={typeof href === 'string' ? href : '#'} {...props}>
{children}
</a>
),
}));

vi.mock('../components/globe-canvas', () => ({
GlobeCanvas: () => <div>GlobeCanvas</div>,
}));

vi.mock('./hero-art-carousel', () => ({
HeroArtCarousel: ({ children }: { children: React.ReactNode }) => <div>{children}</div>,
}));

vi.mock('./homepage-hero-actions', () => ({
HomepageHeroActions: () => <div>HomepageHeroActions</div>,
}));

vi.mock('./homepage-timezone-badge', () => ({
HomepageTimezoneBadge: () => <div>HomepageTimezoneBadge</div>,
}));

vi.mock('../components/ui/button', () => ({
LinkButton: ({
children,
href,
...props
}: React.AnchorHTMLAttributes<HTMLAnchorElement>) => (
<a href={typeof href === 'string' ? href : '#'} {...props}>
{children}
</a>
),
}));

describe('HomePage footer license', () => {
it('renders the GPL license and never the stale MIT label', () => {
const html = renderToStaticMarkup(<HomePage />);

expect(html).toContain('Open source · GPL-3.0-only');
expect(html).not.toContain('MIT License');
});
});
18 changes: 18 additions & 0 deletions docs/BACKLOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
# Ordered Backlog (One Feature per PR)

## Feature 77 (PR#TBD): Lock homepage footer license copy to GPL

Scope:

- Preserve the existing correct homepage footer license label.
- Add a focused regression test so the footer cannot drift back to `MIT License`.

Acceptance criteria:

- The homepage footer continues to render `Open source · GPL-3.0-only`.
- A homepage regression test fails if `MIT License` appears in the rendered footer output.
- Validation passes:
- `npm run env:check`
- `npm run lint`
- `npm run test`
- `npm run typecheck`
- `git diff --check`

## Feature 76 (PR#TBD): Audit and fix Google/Microsoft provider flows end to end

Scope:
Expand Down