Skip to content

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: ___________