Files
Viktor Miller 433b83bd8f docs(07): create phase plan
Phase 07: Testing & Polish
- 3 plans created
- 9 total tasks defined (all verification checkpoints + 1 checklist creation)
- Ready for execution

Plan breakdown:
- 07-01: Provider flow E2E test (register → submit → deactivate)
- 07-02: Mentor flow E2E test (browse → apply → opt-in)
- 07-03: Admin flow test + deployment checklist

All plans independent (can run in parallel)
2026-01-14 21:14:42 +09:00

199 lines
7.6 KiB
Markdown

---
phase: 07-testing-polish
plan: 02
type: execute
depends_on: []
files_modified: []
---
<objective>
Verify complete mentor workflow from browsing protected job board through application submission and notification opt-in works end-to-end.
Purpose: Ensure mentors (subscribers) can browse approved jobs, view details, apply to positions, and manage notification preferences - the complete mentor experience works as designed.
Output: Verified mentor user journey, documented test results, issues logged if any.
</objective>
<execution_context>
~/.claude/get-shit-done/workflows/execute-plan.md
~/.claude/get-shit-done/references/checkpoints.md
./summary.md
</execution_context>
<context>
@.planning/PROJECT.md
@.planning/ROADMAP.md
@.planning/STATE.md
# Prior work being tested:
@.planning/phases/05-mentor-job-board/05-01-SUMMARY.md
@.planning/phases/05-mentor-job-board/05-02-SUMMARY.md
@.planning/phases/05-mentor-job-board/05-03-SUMMARY.md
@.planning/phases/05-mentor-job-board/05-04-SUMMARY.md
@.planning/phases/06-email-notifications/06-01-SUMMARY.md
**Tech stack being tested:** Elementor templates (archive, single post), ACF fields display, Formidable form F5 (job application), access control, user preferences, notification opt-in
**Expected flows:** Login-protected archive, job detail pages with logo/fields, application form sends email to provider, mentor can opt-in to notifications
**Established patterns:** German UI, access control redirects to /anbieter-login/, 200x200px logo auto-crop, German email templates
</context>
<tasks>
<task type="checkpoint:human-verify" gate="blocking">
<what-built>Protected job archive with access control (Phase 5)</what-built>
<how-to-verify>
**Test Access Control (Logged Out):**
1. Ensure you're logged out
2. Visit: /jobangebote/ (job archive)
3. Confirm: Redirected to /anbieter-login/ (archive is protected)
4. Try to visit a single job post URL directly
5. Confirm: Redirected to /anbieter-login/ (single posts also protected)
**Test Archive Access (Logged In as Mentor/Subscriber):**
1. Log in as subscriber/mentor user
- If no mentor user exists, create one in WP admin (Users → Add New → Role: Subscriber)
- Or register as provider and admin can change role to subscriber
2. Visit: /jobangebote/
3. Confirm: Archive page loads successfully
4. Confirm: Published jobs are visible
5. Confirm: Pending/draft jobs are NOT visible
6. Confirm: Job listings show basic info (title, excerpt, etc.)
**Test Elementor Template:**
1. Verify archive template displays correctly
2. Check responsive design (desktop, tablet, mobile if needed)
3. Confirm no layout issues or broken elements
</how-to-verify>
<resume-signal>Type "approved" when archive access control and display work correctly, or describe issues</resume-signal>
</task>
<task type="checkpoint:human-verify" gate="blocking">
<what-built>Job detail page with ACF fields and application form (Phase 5)</what-built>
<how-to-verify>
**Prerequisites:**
- Logged in as mentor/subscriber
- At least one published job exists (from Phase 7 Plan 1 testing or admin-created)
**Test Job Detail Page:**
1. From archive (/jobangebote/), click on a job listing
2. Single job post page loads
3. Confirm: All ACF fields display correctly:
- Job title (post title)
- Job description (post content)
- Location (job_location)
- Job type (job_type)
- Contact email (job_contact_email)
- Logo (job_logo) displays at 200x200px if uploaded
4. Confirm: Elementor template renders properly
5. Confirm: No PHP errors or warnings
**Test Application Form (F5):**
1. Find "Apply" button or application form on job detail page
2. Fill out application form with test data:
- Applicant name
- Applicant email (auto-filled if logged in)
- Cover message
3. Submit application
4. Confirm: Success message displays
5. Confirm: Form stays on same page (no redirect)
**Test Application Email:**
1. Check email inbox for job provider's contact email (job_contact_email)
2. Confirm: Application notification received
3. Confirm: Email includes:
- Applicant name and email
- Cover message
- Job title
- German language template
4. Confirm: Email is readable and properly formatted
</how-to-verify>
<resume-signal>Type "approved" when job detail and application work correctly, or describe issues</resume-signal>
</task>
<task type="checkpoint:human-verify" gate="blocking">
<what-built>Mentor notification opt-in system (Phase 6)</what-built>
<how-to-verify>
**Prerequisites:** Logged in as mentor/subscriber
**Test Notification Preference Toggle:**
1. Visit profile page: /wp-admin/profile.php
2. Scroll to notification preferences section
3. Confirm: Checkbox appears with German label:
"Benachrichtigungen über neue Stellenangebote erhalten"
4. Confirm: Checkbox only visible for subscribers (mentors), not other roles
5. Check the opt-in checkbox
6. Click "Update Profile" to save
7. Confirm: Preference saves successfully
8. Refresh page
9. Confirm: Checkbox remains checked (preference persisted)
**Test Notification Email (if possible):**
1. With opt-in enabled for test mentor user
2. Have admin publish a new job (or trigger via provider flow)
3. Check mentor's email inbox
4. Confirm: Notification email received with:
- German subject: "Neues Stellenangebot: [job title]"
- Job details (title, location, type, permalink)
- Unsubscribe hint in German
5. If NOT opted in, confirm: No email received
**Test Async Processing (Background Jobs):**
1. Check Action Scheduler status: /wp-admin/tools.php?page=action-scheduler
2. Confirm: Scheduled actions for email batches appear
3. Confirm: Actions complete successfully (status: complete)
4. Confirm: No failed actions or errors
</how-to-verify>
<resume-signal>Type "approved" when notification opt-in and email system work correctly, or describe issues</resume-signal>
</task>
</tasks>
<verification>
Before declaring plan complete:
- [ ] Logged-out users cannot access job archive or detail pages
- [ ] Logged-in mentors can browse job archive
- [ ] Job detail pages display all ACF fields correctly
- [ ] Logo displays at 200x200px when uploaded
- [ ] Application form submits successfully
- [ ] Provider receives application email
- [ ] Notification preference toggle works for subscribers
- [ ] Opted-in mentors receive job publish notifications
- [ ] Action Scheduler processes email batches successfully
</verification>
<success_criteria>
- Complete mentor lifecycle tested end-to-end
- All workflows function without errors
- Access control protects job content from public
- Application emails reach providers
- Notification system works for opted-in mentors
- German UI and emails display properly
- Any issues documented for fixes
</success_criteria>
<output>
After completion, create `.planning/phases/07-testing-polish/07-02-SUMMARY.md`:
# Phase 7 Plan 2: Mentor Flow E2E Testing Summary
**[Substantive one-liner - what was tested and verified]**
## Test Results
- [Archive Access Control: PASS/FAIL with details]
- [Job Detail & Application: PASS/FAIL with details]
- [Notification Opt-In: PASS/FAIL with details]
## Issues Found
[List any bugs, UX issues, or problems discovered, or "None"]
## Fixes Applied
[List any immediate fixes made during testing, or "None"]
## Next Step
Ready for Plan 07-03 (Admin flow and deployment prep). Can run in parallel if desired.
</output>