Přeskočit na hlavní obsah

Testing Guide

This guide explains how to test the D'n'A Cruises system.

Testing Strategy

The system uses a combination of:

  • Manual Testing - Primary method for MVP
  • API Testing - Using curl, Postman, or similar
  • Frontend Testing - Browser-based testing
  • Integration Testing - End-to-end workflows

API Testing

Using curl

# GET request
curl -X GET "http://localhost:8787/items?page=1&pageSize=10" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"

# POST request
curl -X POST "http://localhost:8787/items" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Test Item", "category_id": 1}'

# PUT request
curl -X PUT "http://localhost:8787/items/1" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Updated Item"}'

# DELETE request
curl -X DELETE "http://localhost:8787/items/1" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"

Using Postman

  1. Create a collection for D'n'A Cruises API
  2. Set up environment variables:
    • base_url: http://localhost:8787 (local) or production URL
    • jwt_token: Your JWT token
  3. Add Authorization header: Bearer {{jwt_token}}
  4. Create requests for each endpoint

Frontend Testing

Manual Testing Checklist

Authentication

  • Login with email/password
  • Login with passkey
  • Login with Google OAuth
  • 2FA flow (TOTP)
  • 2FA flow (SMS)
  • Logout

Items & Assets

  • List items
  • Create item
  • Update item
  • Delete item
  • List assets
  • Create asset
  • Update asset
  • Delete asset

Projects

  • List projects
  • Create project
  • View project detail
  • Update project
  • Delete project

Load Sessions

  • Create load session
  • Scan asset (in plan)
  • Scan asset (not in plan)
  • Scan global kit (complete)
  • Scan global kit (incomplete)
  • Scan project kit
  • Qty operations (+1, +5, +10, -1, -5, -10)
  • Close session

Kits

  • List global kits
  • Create global kit
  • View global kit detail
  • Add asset to global kit
  • Add item to global kit
  • Remove member from global kit
  • List project kits
  • Create project kit
  • View project kit detail

Inventory

  • Create inventory session
  • Scan asset in inventory
  • View inventory records
  • Close inventory session
  • View session history

Wallboard

  • View overall progress
  • View missing items
  • View extra items
  • View recent scans
  • Real-time updates

Integration Testing

Load Session Workflow

  1. Setup

    • Create a project
    • Create items and assets
    • Create a global kit
    • Create a project kit
  2. Planning

    • Create load session
    • Add plan lines (assets, items, kits)
    • Verify plan is correct
  3. Loading

    • Scan assets in plan
    • Scan assets not in plan (confirm)
    • Scan global kit (complete)
    • Scan global kit (incomplete)
    • Scan project kit
    • Use qty operations
    • Verify status updates
  4. Completion

    • Check missing/extra items
    • Close session
    • Verify session is closed

Inventory Workflow

  1. Setup

    • Create inventory session
  2. Scanning

    • Scan multiple assets
    • Verify records appear
    • Check for duplicates
  3. Completion

    • Close session
    • View session history
    • Verify records are saved

Error Testing

Test error scenarios:

  • Invalid Input: Submit forms with invalid data
  • Missing Data: Try to access non-existent resources
  • Unauthorized: Try to access without authentication
  • Forbidden: Try to access with insufficient permissions
  • Network Errors: Test with API offline

Performance Testing

Load Testing

  • Test with multiple concurrent requests
  • Test pagination with large datasets
  • Test real-time polling performance

Frontend Performance

  • Check page load times
  • Test on mobile devices
  • Test with slow network (throttle in DevTools)

Browser Testing

Test in:

  • Chrome (latest)
  • Safari (latest)
  • Firefox (latest)
  • Edge (latest)
  • Mobile browsers (iOS Safari, Chrome Android)

Accessibility Testing

  • Keyboard navigation
  • Screen reader compatibility
  • Color contrast
  • Focus indicators

Best Practices

  1. Test Before Committing - Always test locally first
  2. Test All Roles - Test as Loader, Producer, and Admin
  3. Test Edge Cases - Test boundary conditions
  4. Test Error Handling - Verify error messages are clear
  5. Document Issues - Keep track of bugs and fixes
  6. Regression Testing - Test existing features after changes