diff --git a/.planning/phases/07-testing-polish/07-01-PLAN.md b/.planning/phases/07-testing-polish/07-01-PLAN.md new file mode 100644 index 0000000..4cd7ca3 --- /dev/null +++ b/.planning/phases/07-testing-polish/07-01-PLAN.md @@ -0,0 +1,184 @@ +--- +phase: 07-testing-polish +plan: 01 +type: execute +depends_on: [] +files_modified: [] +--- + + +Verify complete provider workflow from registration through job deactivation works end-to-end without errors. + +Purpose: Ensure providers can successfully register, submit jobs, manage their listings, and deactivate when needed - the complete lifecycle works as designed. +Output: Verified provider user journey, documented test results, issues logged if any. + + + +~/.claude/get-shit-done/workflows/execute-plan.md +~/.claude/get-shit-done/references/checkpoints.md +./summary.md + + + +@.planning/PROJECT.md +@.planning/ROADMAP.md +@.planning/STATE.md + +# Prior work being tested: +@.planning/phases/02-provider-registration-auth/02-01-SUMMARY.md +@.planning/phases/02-provider-registration-auth/02-02-SUMMARY.md +@.planning/phases/02-provider-registration-auth/02-03-SUMMARY.md +@.planning/phases/02-provider-registration-auth/02-04-SUMMARY.md +@.planning/phases/03-job-management-core/03-01-SUMMARY.md +@.planning/phases/03-job-management-core/03-02-SUMMARY.md +@.planning/phases/04-job-deactivation-system/04-01-SUMMARY.md + +**Tech stack being tested:** Formidable Forms (F1 registration, F2 submission, F3 edit, F4 deactivation), custom role `ddhh_provider`, ACF fields, access control, email notifications +**Expected flows:** Self-registration with auto-login, dashboard access, job submission to pending, job editing (resets to pending), job deactivation (to draft) +**Established patterns:** German UI, ownership validation, admin approval workflow + + + + + + Provider registration and login flow (Phase 2) + + **Test Registration:** + 1. Visit: /anbieter-login/ (login/registration page) + 2. Fill out registration form (F1) with test data: + - Email: test-provider-[timestamp]@test.com + - Company name, password, etc. + 3. Submit form + 4. Confirm: Auto-logged in after registration (no manual login needed) + 5. Confirm: Redirected to provider dashboard (/anbieter-dashboard/) + 6. Confirm: Dashboard shows "Keine Stellenangebote gefunden" (no jobs yet) + + **Test Login (existing user):** + 1. Log out + 2. Return to /anbieter-login/ + 3. Log in with registered credentials + 4. Confirm: Redirected to dashboard + 5. Confirm: Access control works (logged-in providers can access dashboard) + + **Test Access Control:** + 1. Log out + 2. Try to visit /anbieter-dashboard/ directly + 3. Confirm: Redirected to /anbieter-login/ (non-logged-in users blocked) + + Type "approved" when registration and login work correctly, or describe issues to investigate + + + + Job submission and editing flow (Phase 3) + + **Prerequisites:** Logged in as provider from previous test + + **Test Job Submission (F2):** + 1. From dashboard, click "Neues Angebot erstellen" or similar submission link + 2. Fill out job submission form with test data: + - Job title (Stellentitel) + - Description (Beschreibung) + - Location (Standort) + - Job type (Art der Stelle) + - Contact email + - Logo upload (optional) + 3. Submit form + 4. Confirm: Redirected back to dashboard + 5. Confirm: New job appears in dashboard with "pending" status + 6. Confirm: Job NOT visible on public job archive (/jobangebote/) yet + + **Test Job Edit (F3):** + 1. From dashboard, click "Bearbeiten" (edit) button on submitted job + 2. Edit form appears with pre-filled data + 3. Modify job title or description + 4. Submit changes + 5. Confirm: Redirected back to dashboard + 6. Confirm: Job status reset to "pending" (requires re-approval) + 7. Confirm: Changes saved correctly + + **Test Admin Notification:** + 1. Check admin email inbox (WordPress site admin email) + 2. Confirm: Received notification about new job submission + 3. Confirm: Email includes job title, provider details, direct edit link + + Type "approved" when submission and editing work correctly, or describe issues + + + + Job deactivation flow (Phase 4) + + **Prerequisites:** + - Job from previous test exists + - Admin approves job (set status to "publish" in WP admin) + - Wait for job to appear on dashboard as "published" + + **Test Deactivation (F4):** + 1. From dashboard, find published job + 2. Click "Deaktivieren" (deactivate) button + 3. Deactivation form appears with reason field (required) + 4. Enter deactivation reason: "Test: Position filled" + 5. Submit form + 6. Confirm: Job status changes to "draft" + 7. Confirm: Job no longer visible on public job archive + 8. Confirm: Job still visible in provider's dashboard (as draft) + + **Test Admin Deactivation Notification:** + 1. Check admin email inbox + 2. Confirm: Received notification about job deactivation + 3. Confirm: Email includes job title, provider details, deactivation reason + + **Test Deactivation Access Control:** + 1. Try to deactivate a pending/draft job (should not have deactivate button) + 2. Confirm: Deactivate button only appears for published jobs + + Type "approved" when deactivation flow works correctly, or describe issues + + + + + +Before declaring plan complete: +- [ ] Provider can register and auto-login +- [ ] Provider can submit jobs (go to pending) +- [ ] Provider can edit jobs (reset to pending) +- [ ] Provider can deactivate published jobs (go to draft) +- [ ] Access control prevents non-logged-in access +- [ ] Admin receives email notifications for submissions and deactivations +- [ ] German UI labels display correctly + + + + +- Complete provider lifecycle tested end-to-end +- All workflows function without errors +- Access control works correctly +- Email notifications reach admin inbox +- German UI displays properly +- Any issues documented for fixes + + + +After completion, create `.planning/phases/07-testing-polish/07-01-SUMMARY.md`: + +# Phase 7 Plan 1: Provider Flow E2E Testing Summary + +**[Substantive one-liner - what was tested and verified]** + +## Test Results + +- [Registration/Login: PASS/FAIL with details] +- [Job Submission/Edit: PASS/FAIL with details] +- [Job Deactivation: 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-02 (Mentor flow E2E testing). Can run in parallel if desired. + diff --git a/.planning/phases/07-testing-polish/07-02-PLAN.md b/.planning/phases/07-testing-polish/07-02-PLAN.md new file mode 100644 index 0000000..04ccc4a --- /dev/null +++ b/.planning/phases/07-testing-polish/07-02-PLAN.md @@ -0,0 +1,198 @@ +--- +phase: 07-testing-polish +plan: 02 +type: execute +depends_on: [] +files_modified: [] +--- + + +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. + + + +~/.claude/get-shit-done/workflows/execute-plan.md +~/.claude/get-shit-done/references/checkpoints.md +./summary.md + + + +@.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 + + + + + + Protected job archive with access control (Phase 5) + + **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 + + Type "approved" when archive access control and display work correctly, or describe issues + + + + Job detail page with ACF fields and application form (Phase 5) + + **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 + + Type "approved" when job detail and application work correctly, or describe issues + + + + Mentor notification opt-in system (Phase 6) + + **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 + + Type "approved" when notification opt-in and email system work correctly, or describe issues + + + + + +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 + + + + +- 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 + + + +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. + diff --git a/.planning/phases/07-testing-polish/07-03-PLAN.md b/.planning/phases/07-testing-polish/07-03-PLAN.md new file mode 100644 index 0000000..1a75922 --- /dev/null +++ b/.planning/phases/07-testing-polish/07-03-PLAN.md @@ -0,0 +1,179 @@ +--- +phase: 07-testing-polish +plan: 03 +type: execute +depends_on: [] +files_modified: [.planning/phases/07-testing-polish/DEPLOYMENT-CHECKLIST.md] +--- + + +Verify admin moderation workflow functions correctly and create comprehensive deployment checklist for production readiness. + +Purpose: Ensure admin can effectively moderate job submissions, manage listings, and that the system is ready for production deployment with all necessary configurations documented. +Output: Verified admin workflow, deployment checklist document, system ready for production. + + + +~/.claude/get-shit-done/workflows/execute-plan.md +~/.claude/get-shit-done/references/checkpoints.md +./summary.md + + + +@.planning/PROJECT.md +@.planning/ROADMAP.md +@.planning/STATE.md + +# Prior work being tested: +@.planning/phases/03-job-management-core/03-03-SUMMARY.md +@.planning/phases/03-job-management-core/03-04-SUMMARY.md +@.planning/phases/04-job-deactivation-system/04-02-SUMMARY.md +@.planning/phases/06-email-notifications/06-03-SUMMARY.md + +**Tech stack being tested:** WordPress admin UI enhancements, custom columns, email notifications, Action Scheduler, moderation workflow +**Expected flows:** Admin receives notifications, reviews pending jobs, approves/rejects via status changes, sees enhanced columns +**Established patterns:** German admin UI, custom columns (submission date, location, type), sortable columns, admin-only hooks +**Deployment considerations:** Email configuration (WP Mail SMTP on production, disabled in Local WP dev), Action Scheduler, ACF fields, Formidable forms + + + + + + Admin moderation workflow with enhanced UI (Phase 3) + + **Prerequisites:** + - Logged in as admin + - At least one pending job exists (from provider flow test in Plan 07-01) + + **Test Admin Job List UI:** + 1. Visit: /wp-admin/edit.php?post_type=job_offer + 2. Confirm: Custom columns display: + - Eingereicht am (submission date) + - Standort (location) + - Art (job type) + 3. Confirm: Default "Author" and "Date" columns removed (cleaner interface) + 4. Click column headers to test sorting + 5. Confirm: All columns are sortable (including ACF fields) + 6. Confirm: German labels display correctly + + **Test Moderation Actions:** + 1. Find pending job in list + 2. Click job title to edit + 3. Review job details: + - Title, description, location, type, contact email, logo + 4. Change post status from "Pending Review" to "Published" + 5. Click "Update" to save + 6. Confirm: Job status changes to published + 7. Confirm: Job now appears on public archive (/jobangebote/) + + **Test Rejection (Set to Draft):** + 1. Find another pending job + 2. Change status to "Draft" + 3. Update + 4. Confirm: Job remains in admin list but not on public archive + 5. Confirm: Provider can still see it in their dashboard (as draft) + + **Test Admin Email Notifications:** + 1. Review inbox for submission notifications (from Plan 07-01) + 2. Confirm: Email includes direct edit link + 3. Click edit link in email + 4. Confirm: Taken directly to job edit screen + 5. Review deactivation notification (from Plan 07-01) + 6. Confirm: Email includes deactivation reason + + Type "approved" when admin moderation workflow works correctly, or describe issues + + + + Action Scheduler and async email processing (Phase 6) + + **Test Action Scheduler Status:** + 1. Visit: /wp-admin/tools.php?page=action-scheduler + 2. Confirm: Page loads without errors + 3. Review scheduled actions for group "email-notifications" + 4. Confirm: Mentor notification batches scheduled after job publish + 5. Check "Complete" tab + 6. Confirm: Email batch actions completed successfully + 7. Check "Failed" tab + 8. Confirm: No failed actions (or investigate failures if present) + + **Test Email Batch Logging:** + 1. Check error_log or debug.log for notification logs + 2. Search for "Scheduled X notification batches" (from job publish hook) + 3. Search for "Processed notification batch" (from batch processor) + 4. Confirm: Logs show expected behavior with counts + 5. Confirm: No PHP errors or warnings in logs + + **Test Rate Limiting:** + 1. If large mentor list exists (50+ opted-in users) + 2. Confirm: Batches processed in chunks of 50 + 3. Confirm: No timeout errors + 4. If small list: Note that rate limiting works programmatically + + Type "approved" when async processing works correctly, or describe issues + + + + Task 3: Create deployment readiness checklist + .planning/phases/07-testing-polish/DEPLOYMENT-CHECKLIST.md + Create comprehensive deployment checklist covering all system requirements for production. Include sections: (1) Server Requirements (PHP version, WordPress version, memory limit), (2) Required Plugins (ACF Pro, Formidable Forms + addons, Elementor Pro, WP Mail SMTP), (3) Plugin Configuration (ACF field groups, Formidable forms F1-F5, Elementor templates, notification opt-in), (4) Email Configuration (WP Mail SMTP setup for production, admin email verification, test notifications), (5) Access Control (verify /anbieter-login/ and /anbieter-dashboard/ pages exist, test redirects), (6) User Roles (ddhh_provider role exists, capabilities correct, test users), (7) Action Scheduler (verify cron running, check failed actions, monitor queue), (8) Testing Checklist (provider flow, mentor flow, admin flow - reference Phase 7 plans), (9) Security Checklist (HTTPS enabled, user enumeration blocked, file upload restrictions), (10) Performance (check query optimization, image optimization, caching if applicable), (11) Backup Strategy (pre-deployment backup, rollback plan), (12) Post-Deployment Verification (smoke tests, notification tests, form submissions). Use German labels where appropriate for consistency. Format as checklist with [ ] checkboxes for easy tracking. + cat .planning/phases/07-testing-polish/DEPLOYMENT-CHECKLIST.md shows comprehensive checklist with all sections and checkboxes + Deployment checklist created with all required sections, ready for production use + + + + + +Before declaring plan complete: +- [ ] Admin can moderate jobs via status changes +- [ ] Enhanced admin columns display and sort correctly +- [ ] Admin receives all notification emails +- [ ] Action Scheduler processes email batches successfully +- [ ] No failed actions or errors in logs +- [ ] Deployment checklist created and comprehensive + + + + +- Admin moderation workflow verified end-to-end +- All admin UI enhancements working correctly +- Email notification system functioning +- Action Scheduler stable and error-free +- Comprehensive deployment checklist created +- System ready for production deployment +- Phase 7 complete - all testing and polish work done + + + +After completion, create `.planning/phases/07-testing-polish/07-03-SUMMARY.md`: + +# Phase 7 Plan 3: Admin Flow & Deployment Prep Summary + +**[Substantive one-liner - what was tested and verified]** + +## Test Results + +- [Admin Moderation Workflow: PASS/FAIL with details] +- [Action Scheduler & Email Processing: PASS/FAIL with details] +- [Deployment Checklist: Created] + +## Issues Found + +[List any bugs, UX issues, or problems discovered, or "None"] + +## Fixes Applied + +[List any immediate fixes made during testing, or "None"] + +## Deployment Readiness + +- Server requirements documented +- Required plugins listed +- Configuration checklist created +- Security considerations noted +- Post-deployment verification plan ready + +## Next Step + +**Phase 7 complete.** All testing and polish work finished. System ready for production deployment following DEPLOYMENT-CHECKLIST.md. Project complete - all 7 phases done! +