# Manual Frontend Test Checklist ## Prerequisites 1. Ensure `.env` file is configured with valid Appwrite and Stripe credentials 2. Run `node bootstrap-appwrite.mjs` to seed the database 3. Start the server with `node index.mjs` 4. Open browser to `http://localhost:3000` ## Test Checklist ### ✅ Test 1: Form Type Rendering - [ ] Page loads without errors - [ ] Step 1 displays with question fields - [ ] Text input fields render correctly - [ ] Email input field has email validation - [ ] Required fields show asterisk (*) marker - [ ] Help text displays below labels (if present) ### ✅ Test 2: Select and Multiselect Navigate to step with select/multiselect fields: - [ ] Single select dropdown shows all options - [ ] Can select one option from dropdown - [ ] Multiselect shows as list box (size=5) - [ ] Can select multiple options in multiselect (Ctrl+Click) ### ✅ Test 3: Textarea Navigate to step with textarea: - [ ] Textarea renders with multiple rows - [ ] Can type multi-line text - [ ] Text persists when navigating away and back ### ✅ Test 4: Navigation - Forward - [ ] "Zurück" button is hidden on step 1 - [ ] "Weiter" button is visible - [ ] Clicking "Weiter" advances to next step - [ ] Button text changes to "Zur Zusammenfassung" on last step ### ✅ Test 5: Navigation - Backward - [ ] Fill some fields on step 1 - [ ] Click "Weiter" to go to step 2 - [ ] "Zurück" button is now visible - [ ] Click "Zurück" to return to step 1 - [ ] Previously entered values are still present ### ✅ Test 6: Required Field Validation - [ ] Leave a required field empty - [ ] Click "Weiter" - [ ] Alert message appears with field name - [ ] Navigation is blocked (stays on same step) - [ ] Fill the required field - [ ] Click "Weiter" again - [ ] Navigation proceeds to next step ### ✅ Test 7: Answer Persistence - [ ] Fill out step 1 completely - [ ] Navigate to step 2 - [ ] Fill out step 2 completely - [ ] Navigate back to step 1 - [ ] Verify all step 1 answers are preserved - [ ] Navigate forward to step 2 - [ ] Verify all step 2 answers are preserved ### ✅ Test 8: Summary Display - [ ] Complete all steps with valid data - [ ] Click "Zur Zusammenfassung" - [ ] Form and navigation buttons disappear - [ ] Summary section appears - [ ] All questions and answers are displayed - [ ] Multiselect answers show as comma-separated list - [ ] Empty answers show as "-" - [ ] "Jetzt kaufen" button is visible ### ✅ Test 9: Checkout Flow - [ ] Click "Jetzt kaufen" button - [ ] Browser redirects to Stripe checkout page - [ ] Stripe page shows correct product and price - [ ] (Optional) Complete test payment - [ ] (Optional) Verify webhook updates submission status ### ✅ Test 10: Error Handling - [ ] Disconnect from internet or stop server - [ ] Try to load page or submit - [ ] Verify error message appears - [ ] Verify user-friendly error handling ## Expected Results All checkboxes should be checked (✅) for the frontend to be considered fully functional. ## Notes - This checklist validates Requirements 1.1, 1.2, 1.3, and 1.4 - All form types (text, email, textarea, select, multiselect) must work - Navigation must be bidirectional with answer persistence - Validation must prevent invalid submissions - Summary must display all answers correctly - Checkout flow must redirect to Stripe ## Test Status: ✅ READY FOR MANUAL TESTING The code has been verified through static analysis. Manual testing can be performed once the environment is configured.