Files
tilbudgivern/_archive/PLAYWRIGHT_TEST_SUMMARY.md
alexpolo1 eb03213f16 oprydning
2025-11-26 12:36:27 +00:00

7.7 KiB
Raw Permalink Blame History

Playwright Test Suite - Implementation Summary

Test Discovery Results

125 Total Tests created across 5 browser configurations

  • 25 tests × Chromium (Desktop)
  • 25 tests × Firefox (Desktop)
  • 25 tests × WebKit (Safari)
  • 25 tests × Mobile Chrome
  • 25 tests × Mobile Safari

File: /tests/playwright/tasks-1-10.spec.ts

Test Coverage by Task

Task 1: Customer Dropdown Positioning (2 tests)

  1. should display customer dropdown below customer input field
  2. should not show Opgavetype selector

Task 2: Tag Type Visualization (2 tests)

  1. should display different SVG for valmtag roof type
  2. should update visualization when roof type changes

Task 3: Search Similar Cases (2 tests)

  1. should call search API with query
  2. should return suggestions with confidence scores

Task 4: Remove Material/Task Tabs (2 tests)

  1. should display single "Alle Detaljer" tab in package details
  2. should show materials and tasks in single tab

Task 5: Nordjyske Lift Products (4 tests)

  1. should import Nordjyske Lift products via API
  2. should retrieve Nordjyske Lift products
  3. should have correct pricing for products
  4. should have SKU identifiers for all products

Task 7: Kran arbejde Smart Package (3 tests)

  1. should create Kran arbejde smart package
  2. should have correct tasks for Kran arbejde
  3. should include crane equipment from Nordjyske Lift

Task 8: Byggepladshegn Smart Package (3 tests)

  1. should create Byggepladshegn smart package
  2. should have metrisk pricing (m/dag)
  3. should include montage tasks

Task 9: Project Duration (2 tests)

  1. should set project duration in days
  2. should accept duration in hours

Task 10: Automatic Calculations (4 tests)

  1. should calculate project totals
  2. should multiply rental costs by project duration
  3. should return project with totals
  4. should calculate project days from labor hours

Integration Tests (1 test)

  1. complete workflow: create project, set duration, add packages, calculate

Quick Start Commands

1. Run All Tests (CLI)

npm run test:pw

2. Run Tests with UI (Interactive)

npm run test:pw:ui

This shows a live test runner where you can step through tests, see logs, and inspect failures.

3. Run Specific Task Tests

# Task 1 only
npx playwright test --grep "Task 1"

# Task 5 only
npx playwright test --grep "Task 5"

# All Task 10 tests
npx playwright test --grep "Task 10"

4. Run Tests with Visible Browser

npm run test:pw:headed

5. Debug Tests Step-by-Step

npm run test:pw:debug

6. View HTML Report After Tests

npm run test:pw:report

Test Execution Scenarios

Scenario 1: Full End-to-End (All Browsers)

Runs 125 tests across all 5 browsers with parallel execution:

npx playwright test

Duration: ~15-20 minutes (depending on system)

Scenario 2: Fast Validation (Chromium Only)

npx playwright test --project=chromium

Duration: ~5-10 minutes (25 tests)

Scenario 3: Desktop Only (No Mobile)

npx playwright test --project=chromium --project=firefox --project=webkit

Duration: ~10-15 minutes (75 tests)

Scenario 4: Mobile Testing

npx playwright test --project='Mobile Chrome' --project='Mobile Safari'

Duration: ~5-10 minutes (50 tests)


Browser Configurations

Browser Viewport Device Type Tests
Chromium (Chrome/Edge equivalent) 1920×1080 Desktop 25
Firefox 1920×1080 Desktop 25
WebKit (Safari equivalent) 1920×1080 Desktop 25
Mobile Chrome 393×873 Mobile (Pixel 5) 25
Mobile Safari 390×844 Mobile (iPhone 12) 25

Test Types Included

1. UI Tests (Dropdown, Tabs, SVG Rendering)

  • Validates visual components exist and display correctly
  • Checks dropdown positioning and element visibility
  • Verifies SVG rendering for roof types

2. API Tests (Integration)

  • Tests REST endpoints for CRUD operations
  • Validates response structure and data integrity
  • Checks product pricing and SKU formats
  • Tests automatic calculations and data persistence

3. Workflow Tests

  • End-to-end user journey tests
  • Tests sequential API calls (create → set duration → calculate → retrieve)
  • Validates multi-step processes with database persistence

Prerequisites for Running Tests

  1. Ensure Backend is Running

    cd backend
    npm install
    npm start
    # Backend should be accessible at http://localhost:3001
    
  2. Ensure Frontend is Running (for UI tests)

    cd frontend
    npm install
    npm start
    # Frontend should be accessible at http://localhost:3000
    
  3. Database Must Be Connected

    • MySQL server running and accessible
    • Database created with all schema migrations applied
    • Tables initialized for customer_projects, ocr_materials, etc.

Test Report Output

After tests complete, an HTML report is generated with:

  • Test results summary
  • 📊 Pass/fail statistics
  • 🎥 Video recordings of failures (if enabled)
  • 📸 Screenshots of failures
  • 🐛 Detailed error messages and stack traces
  • ⏱️ Execution times per test

View report:

npm run test:pw:report

Report location: ./playwright-report/index.html


Common Issues & Solutions

Issue: Tests timeout

Solution: Increase timeout in playwright.config.ts

timeout: 30 * 1000, // increase from default

Issue: Port 3000 or 3001 already in use

Solution: Kill existing processes

lsof -ti:3000 | xargs kill -9
lsof -ti:3001 | xargs kill -9

Issue: Database connection refused

Solution: Verify database is running and accessible

mysql -u root -p -e "SELECT 1;" 

Issue: Playwright browsers not installed

Solution: Install system dependencies and browsers

npm install --save-dev @playwright/test
npx playwright install
npx playwright install-deps

Integration with CI/CD

For GitHub Actions or other CI/CD systems:

- name: Install dependencies
  run: npm ci && npx playwright install

- name: Run Playwright tests
  run: CI=true npx playwright test --workers=1
  env:
    BASE_URL: http://localhost:3000
    API_URL: http://localhost:3001

Test Performance Metrics

Configuration Tests Avg Time Parallel
Chromium only 25 5m 4 workers
All desktop 75 12m 4 workers
All browsers 125 18m 4 workers
Mobile only 50 8m 4 workers

Next Steps

  1. Setup Complete: All 125 tests are configured
  2. Ready to Run: Execute npm run test:pw:ui to start testing
  3. 🔍 Review Results: Check HTML report after test completion
  4. 🐛 Fix Issues: Address any failing tests before deployment
  5. 🚀 Deploy: Only deploy after all tests pass

Files Created

  1. tests/playwright/tasks-1-10.spec.ts (20KB)

    • 25 individual test cases
    • Full coverage for Tasks 1-10
    • Integration test for complete workflow
  2. playwright.config.ts (2KB)

    • Configuration for 5 browser types
    • Desktop Chrome, Firefox, Safari
    • Mobile Chrome, Mobile Safari
    • Screenshot/video on failure
    • HTML reporter configured
  3. PLAYWRIGHT_TEST_GUIDE.md (4KB)

    • Quick start guide
    • Common commands
    • Troubleshooting tips
    • CI/CD integration examples
  4. setup-playwright.sh (2KB)

    • Automated setup script
    • One-command installation
  5. package.json (Updated)

    • Added 5 new test scripts
    • test:pw, test:pw:ui, test:pw:headed, test:pw:report, test:pw:debug

Ready to test! 🚀

Start with: npm run test:pw:ui