Staging QA Checklist¶
Environment: staging.freezedesign.eu Version: ___________ Date: ___________ Tester: ___________
Pre-Flight Setup¶
Before beginning QA, ensure the staging environment has consistent test data.
Staging Access¶
The staging environment is protected by HTTP Basic Auth (nginx).
Browser access:
- URL: https://staging.freezedesign.eu
- Username: (see .env.staging or deployment docs for htpasswd credentials)
- Password: (see .env.staging or deployment docs for htpasswd credentials)
Cookie bypass (after first login):
After authenticating once with basic auth, nginx sets a staging_auth cookie that bypasses the prompt for 24 hours. This enables return-from-payment redirects (e.g., Mollie) to work without re-prompting.
API endpoints (no auth required):
- /api/* and /_allauth/* endpoints are exempt from basic auth
- These have their own session-based authentication
Setup Checklist¶
- SSH to staging server
- Navigate to backend directory:
cd /opt/webshop/backend - Run seed command:
docker compose exec backend python manage.py seed_staging_data - Verify command output shows 3 users, 2 categories, 5 products, 60 variants created
- Clear browser cache and cookies
- Verify staging URL is accessible (https://staging.freezedesign.eu)
Pass Criteria: Seed command completes without errors, staging site loads, test users exist Result: [ PASS / FAIL / BLOCKED ] Notes: ___
Journey 1: Guest Checkout Flow¶
Persona: First-time visitor, no account
1.1 Product Browse¶
- Navigate to https://staging.freezedesign.eu/products
- Verify product grid loads with QA test products visible
- Click on "QA Basic T-Shirt" product card
- Verify product detail page loads with product name, price, description
- Verify size selector shows S, M, L, XL options
- Verify color selector shows Zwart, Wit, Rood options
Pass Criteria: Product catalog and detail pages load without errors, all product information displays correctly Result: [ PASS / FAIL / BLOCKED ] Notes: ___
1.2 Design Creation¶
- On product detail page, select size M
- Select color Zwart
- Click "Ontwerp je product" button
- Verify designer canvas loads with product preview
- Click text tool in toolbar
- Add text "QA TEST" to canvas
- Verify text appears on canvas and is editable
- Change text color to red
- Click "Toevoegen aan winkelwagen" button
- Verify success message appears
Pass Criteria: Designer loads, text tool works, design can be added to cart Result: [ PASS / FAIL / BLOCKED ] Notes: ___
1.3 Cart Review¶
- Navigate to cart page (click cart icon or /cart URL)
- Verify cart shows 1 item
- Verify item shows product name "QA Basic T-Shirt"
- Verify item shows selected size M and color Zwart
- Verify design preview thumbnail is visible
- Verify price breakdown shows base price + design price
- Verify subtotal and total are calculated correctly
- Click "Afrekenen" button
Pass Criteria: Cart displays item with design preview, prices are correct Result: [ PASS / FAIL / BLOCKED ] Notes: ___
1.4 Guest Checkout¶
- On checkout page, verify "Doorgaan als gast" button is visible
- Click "Doorgaan als gast"
- Fill in shipping form:
- Naam: QA Test Guest
- Email: qa-guest-test@example.com
- Adres: Teststraat 123
- Postcode: 1234AB
- Stad: Amsterdam
- Land: Nederland
- Verify form validation works (try submitting with missing fields)
- Fill in valid shipping details
- Click "Doorgaan naar betaling"
- Verify redirect to payment page
Pass Criteria: Guest checkout form works, validation prevents invalid submissions, form submits successfully Result: [ PASS / FAIL / BLOCKED ] Notes: ___
1.5 Payment¶
- On payment page, verify iDEAL payment option is available
- Select iDEAL as payment method
- Click "Betalen" button
- Verify redirect to Mollie payment page
- In Mollie test environment, select a test bank
- Complete test payment (select "Paid" status)
- Verify redirect back to webshop
- Verify redirect to thank-you/order confirmation page
Pass Criteria: iDEAL payment flow completes, Mollie redirect works, return redirect works Result: [ PASS / FAIL / BLOCKED ] Notes: ___
1.6 Order Confirmation¶
- On thank-you page, verify order number is displayed
- Verify order summary shows purchased item
- Verify "Bekijk je bestelling" link is present
- Click "Bekijk je bestelling" link
- Verify order detail page loads with full order information
- Verify order status shows "Betaald" or equivalent
Pass Criteria: Order confirmation displays with order number, order detail page accessible Result: [ PASS / FAIL / BLOCKED ] Notes: ___
Journey 2: Registered User Flow¶
Persona: Returning customer with account (registered@qa-test.nl / QATest123!)
2.1 Login¶
- Navigate to https://staging.freezedesign.eu/login
- Enter email: registered@qa-test.nl
- Enter password: QATest123!
- Click "Inloggen" button
- Verify redirect to account page or homepage with logged-in state
- Verify user menu shows "Mijn Account" or similar
- Verify username or email is displayed in header
Pass Criteria: Login succeeds, user is redirected, logged-in state is visible Result: [ PASS / FAIL / BLOCKED ] Notes: ___
2.2 Design & Save¶
- Navigate to /products and select "QA Premium T-Shirt"
- Select size L, color Wit
- Click "Ontwerp je product"
- In designer, add text "REGISTERED USER"
- Add an image or clipart to canvas
- Click "Opslaan" or "Bewaar ontwerp" button (if available)
- Verify save confirmation message
- Close designer without adding to cart
Pass Criteria: Design can be saved to account without adding to cart Result: [ PASS / FAIL / BLOCKED ] Notes: ___
2.3 Saved Designs¶
- Navigate to /account/ontwerpen (saved designs page)
- Verify saved design from previous step is listed
- Verify design thumbnail is visible
- Verify product name and size/color are shown
- Click on saved design to open it
- Verify design loads in designer with saved content
- Add saved design to cart
Pass Criteria: Saved designs page lists designs, designs can be reopened and edited Result: [ PASS / FAIL / BLOCKED ] Notes: ___
2.4 Checkout as User¶
- Navigate to cart, verify item from saved design is present
- Click "Afrekenen"
- Verify user is NOT prompted to log in (already logged in)
- Verify shipping form is pre-filled if profile has default address
- Edit shipping address if needed
- Proceed to payment
- Complete iDEAL test payment
Pass Criteria: Checkout uses logged-in user, no re-authentication required, shipping may be pre-filled Result: [ PASS / FAIL / BLOCKED ] Notes: ___
2.5 Order History¶
- After payment completes, navigate to /account/bestellingen (order history)
- Verify new order appears in order list
- Verify order shows correct date, status, total
- Click on order to view detail
- Verify order detail page shows items, shipping address, payment status
Pass Criteria: Order appears in order history immediately after payment, details are accurate Result: [ PASS / FAIL / BLOCKED ] Notes: ___
Journey 3: Admin Operations¶
Persona: Staff admin (admin@qa-test.nl / QATest123!)
3.1 Django Admin Access¶
- Navigate to https://staging.freezedesign.eu/django-admin
- Enter email: admin@qa-test.nl
- Enter password: QATest123!
- If 2FA is enabled, complete TOTP verification
- Verify Django admin dashboard loads
- Verify admin can see Products, Orders, Users sections
Note: /admin is the Next.js frontend admin panel. /django-admin is the Django admin panel.
Pass Criteria: Admin login succeeds, Django admin dashboard is accessible Result: [ PASS / FAIL / BLOCKED ] Notes: ___
3.2 2FA Setup (if applicable)¶
- In Django admin (https://staging.freezedesign.eu/django-admin), navigate to "Two-factor authentication" or user profile
- Click "Set up 2FA" or similar
- Verify QR code is displayed
- Scan QR code with authenticator app (or skip if already set up)
- Enter TOTP code to verify setup
- Verify 2FA is marked as active
Pass Criteria: 2FA setup wizard displays QR code, TOTP verification works Result: [ PASS / FAIL / BLOCKED ] Notes: ___
3.3 Frontend Admin¶
- Navigate to https://staging.freezedesign.eu/admin (Next.js admin panel, if different from Django admin)
- Verify admin is logged in (or log in if separate)
- Verify customer list page loads
- Verify product list page loads
- Verify order list page loads
- Verify each list shows QA test data
Pass Criteria: Frontend admin panel is accessible, lists load with test data Result: [ PASS / FAIL / BLOCKED ] Notes: ___
3.4 Order Management¶
- In admin panel (Django or Next.js), find a QA test order
- Click on order to view details
- Verify order details page shows customer info, items, payment status
- Change order status (e.g., from "Betaald" to "In productie")
- Save changes
- Verify status update is saved
- Verify no errors occur
Pass Criteria: Order details are viewable, status can be updated, changes persist Result: [ PASS / FAIL / BLOCKED ] Notes: ___
3.5 Product Management¶
- In admin panel, navigate to product list
- Click on "QA Basic T-Shirt" to edit
- Verify product edit form loads with current values
- Change product name to "QA Basic T-Shirt (Edited)"
- Save changes
- Verify product name updates in product list
- Toggle product active status (set is_active=False)
- Save and verify product is hidden from frontend catalog
- Toggle back to is_active=True and verify product reappears
Pass Criteria: Product details can be edited, changes save successfully, active toggle works Result: [ PASS / FAIL / BLOCKED ] Notes: ___
Journey 4: Designer Tools¶
Persona: Any user testing designer functionality
4.1 Text Tool¶
- Open designer on any QA product
- Click text tool in toolbar
- Add text "FONT TEST" to canvas
- Click on text to select it
- Change font family from font dropdown (try 2-3 fonts)
- Verify font changes apply to text on canvas
- Change text size using size slider or input
- Verify text size changes
- Change text color using color picker
- Verify text color changes
- Click "Gebogen tekst" or curved text toggle
- Verify text curves along an arc
Pass Criteria: Text tool allows adding, editing, changing font/size/color, curved text works Result: [ PASS / FAIL / BLOCKED ] Notes: ___
4.2 Image Upload¶
- In designer, click image upload tool
- Upload a test PNG image (< 5MB, valid image)
- Verify upload progress indicator appears
- Verify image appears on canvas after upload completes
- Resize image using corner handles
- Rotate image using rotation handle
- Delete image by selecting it and pressing Delete key
- Try uploading an invalid file (e.g., .txt file)
- Verify error message is shown for invalid file
Pass Criteria: Image upload works for valid files, uploaded images can be manipulated, invalid files show error Result: [ PASS / FAIL / BLOCKED ] Notes: ___
4.3 Clipart¶
- In designer, click clipart tool or icon library
- Verify clipart browser/panel opens
- Verify categories are listed (if applicable)
- Click on a category (e.g., "Icons" or "Shapes")
- Verify clipart items load for selected category
- Click on a clipart item
- Verify clipart is added to canvas
- Resize and recolor clipart if tools are available
- Verify clipart behaves like other canvas objects
Pass Criteria: Clipart browser loads, categories work, clipart can be added to canvas Result: [ PASS / FAIL / BLOCKED ] Notes: ___
4.4 View Switching¶
- In designer, verify current view is "Voor" (front)
- Add text "FRONT VIEW" to canvas
- Click view switcher to change to "Achter" (back)
- Verify canvas clears or shows back view
- Add text "BACK VIEW" to back view canvas
- Switch back to "Voor" (front)
- Verify "FRONT VIEW" text is still present
- Switch to "Achter" again
- Verify "BACK VIEW" text is still present
Pass Criteria: View switching works, designs persist per view independently Result: [ PASS / FAIL / BLOCKED ] Notes: ___
4.5 Keyboard Shortcuts¶
- In designer, add a text object to canvas
- Select the text object
- Press Delete key
- Verify object is removed from canvas
- Add another text object
- Make a change (e.g., change color)
- Press Ctrl+Z (or Cmd+Z on Mac)
- Verify undo works (change is reverted)
- Press Ctrl+Y or Ctrl+Shift+Z for redo (if available)
- Verify redo works
Pass Criteria: Delete key removes selected objects, undo shortcut works Result: [ PASS / FAIL / BLOCKED ] Notes: ___
Journey 5: Error Handling¶
5.1 404 Page¶
- Navigate to https://staging.freezedesign.eu/nonexistent-page
- Verify a styled 404 error page is displayed
- Verify 404 page shows "Pagina niet gevonden" or similar message
- Verify 404 page has a link to homepage or catalog
- Click homepage link and verify it works
Pass Criteria: 404 page is styled and user-friendly, provides navigation back to site Result: [ PASS / FAIL / BLOCKED ] Notes: ___
5.2 Invalid Product¶
- Navigate to https://staging.freezedesign.eu/products/invalid-product-slug
- Verify error handling occurs (404 or error message)
- Verify no unhandled exception or white screen of death
- Verify user can navigate back to product catalog
Pass Criteria: Invalid product slug shows error page, no unhandled exceptions Result: [ PASS / FAIL / BLOCKED ] Notes: ___
5.3 Empty Cart Checkout¶
- Clear browser cart (delete all items)
- Manually navigate to https://staging.freezedesign.eu/checkout
- Verify redirect to cart page or error message "Cart is empty"
- Verify user cannot proceed to checkout with empty cart
Pass Criteria: Empty cart prevents checkout, user is redirected or shown error message Result: [ PASS / FAIL / BLOCKED ] Notes: ___
Post-Flight Summary¶
Journey Results¶
| Journey | Pass | Fail | Blocked | Notes |
|---|---|---|---|---|
| 1. Guest Checkout Flow | [ ] | [ ] | [ ] | ___ |
| 2. Registered User Flow | [ ] | [ ] | [ ] | ___ |
| 3. Admin Operations | [ ] | [ ] | [ ] | ___ |
| 4. Designer Tools | [ ] | [ ] | [ ] | ___ |
| 5. Error Handling | [ ] | [ ] | [ ] | ___ |
Overall Result¶
PASS [ ] FAIL [ ]
Blocking Issues¶
If FAIL, list blocking issues to report:
Notes¶
Additional observations, minor bugs, or suggestions for improvement:
QA Session Complete Reviewed by: ___________ Date: ___________