Files
gw-svelte/src/lib/components/ui/Footer.test.ts
T
adminandClaude Opus 4.8 0e88e7bdac v4.0.5
Component architecture
- Reorganise src/lib/components into pages/, sections/, ui/ subdirectories and
  update all imports across routes and tests.

Owner admin dashboard (+2k lines)
- Scheduled welcome-pack emails: durable queue with cancel/reschedule and a
  background sender loop (SCHEDULED_CHECK_INTERVAL_SECONDS, default 60s).
- Custom welcome-pack subject line, preview recipients, and client BCC.
- Add-client, edit client profile, and reset-onboarding flows.
- "View as client" onboarding preview (owner impersonation, dry-run submit).
- Tabbed owner welcome route (/owner/welcome/[[tab]]).

MYOB integration
- New mail_api/myob.py: create new clients as MYOB AccountRight customer
  contacts. Disabled until all MYOB_* env vars are set (no-op otherwise).

Onboarding
- New "Does your dog resource guard?" Yes/No question in the Behaviour step.
- Persist vetAddress, flea/tick, and pet-insurance fields server-side.

Misc
- vite config, new hooks.ts, responsive CSS tweaks, deploy/docker config,
  mail-api README and start-dev.ps1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 21:51:29 +12:00

21 lines
680 B
TypeScript

import { render, screen } from '@testing-library/svelte';
import { describe, expect, it } from 'vitest';
import Footer from './Footer.svelte';
import { homepageContent } from '$lib/content/homepage';
describe('Footer', () => {
it('adds the About Us link when footer content omits it', () => {
const footer = {
...homepageContent.footer,
navigationLinks: homepageContent.footer.navigationLinks.filter((link) => link.href !== '/about')
};
render(Footer, { footer });
const aboutLinks = screen.getAllByRole('link', { name: 'About Us' });
expect(aboutLinks).toHaveLength(1);
expect(aboutLinks[0]).toHaveAttribute('href', '/about');
});
});