# Lead Gen Forms QA Checklist

**Last Updated:** 2026-02-18

One-page checklist for manual QA of lead gen form consent (GDPR).

## Pre-test setup

1. Open site in incognito/private window
2. Deny cookies via banner (or leave banner open)
3. Ensure no prior localStorage for the tool

## Form types to test

### Template download (templates_template.php)

- [ ] `/vorlagen/dienstplan-excel-vorlage` – Open modal, do NOT check consent, submit → Excel delivered, no HubSpot
- [ ] Same page – Check consent checkbox, submit → Excel delivered, HubSpot receives
- [ ] Same for Schichtplan template if applicable

### Gated content (include_form-gated-content.php)

- [ ] `/download/zeiterfassung` – Do NOT check consent, submit → content delivered, no HubSpot
- [ ] Same page – Check consent, submit → content delivered, HubSpot receives

### Tool export modals

Test one tool from each implementation (inline PHP vs external JS):

- [ ] `/tools/urlaubsanspruchrechner` – Export modal: no consent → content delivered, no HubSpot
- [ ] Same – Check consent → content delivered, HubSpot receives
- [ ] `/tools/industrieminuten-rechner` – Bulk CSV: same flow
- [ ] `/tools/minijob-rechner` – Export modal: same flow
- [ ] `/tools/prozentrechner` – Export modal: same flow

### Gated overlays (unlock before content)

- [ ] `/tools/stundenlohnrechner` – Switch to Pro mode, unlock overlay: no consent → content unlocked, no HubSpot
- [ ] Same – Check consent → content unlocked, HubSpot receives
- [ ] `/tools/arbeitstage-rechner` – Switch to Advanced, unlock overlay: same flow
- [ ] `/tools/arbeitszeitrechner` – Unlock overlay: same flow
- [ ] `/tools/tvoed-sue` – Unlock overlay: same flow

### ShiftOps

- [ ] ShiftOps report unlock form – no consent → report generated, no HubSpot
- [ ] Same – Check consent → report generated, HubSpot receives
- [ ] NPS form after report – same flow

## Visual check

- [ ] Consent text wraps under itself, not under checkbox (Industrieminuten, Urlaubsanspruch, TVöD-SuE)
- [ ] Checkbox is above submit button
- [ ] Checkbox is unchecked by default

## Automated tests

```bash
php v2/scripts/dev-helpers/test-forms-consent.php http://localhost:8003
python3 v2/scripts/dev-helpers/audit-forms-consent.py
python3 v2/scripts/dev-helpers/audit-lead-gen-forms.py
```

## Reference

- `docs/systems/gdpr/FORMS_CONSENT_IMPLEMENTATION.md` – Architecture and patterns
- `docs/guides/tools-pages/GATED_EXPORT_MODAL_AUDIT.md` – Tool modal inventory
