mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-02-18 00:17:39 +01:00
Implements end-to-end testing infrastructure for the Pulse update flow, validating the entire path from UI to backend with controllable test scenarios. ## What's Included ### Test Infrastructure - Mock GitHub release server (Go) with controllable failure modes - Docker Compose test environment (isolated services) - Playwright test framework with TypeScript - 60+ test cases across 6 test suites - Helper library with 20+ reusable test utilities ### Test Scenarios 1. Happy Path (8 tests) - Valid checksums, successful update flow - Modal appears exactly once - Complete end-to-end validation 2. Bad Checksums (8 tests) - Server rejects invalid checksums - Error shown ONCE (not twice) - fixes v4.28.0 issue type - User-friendly error messages 3. Rate Limiting (9 tests) - Multiple rapid requests throttled gracefully - Proper rate limit headers - Clear error messages 4. Network Failure (10 tests) - Exponential backoff retry logic - Timeout handling - Graceful degradation 5. Stale Release (10 tests) - Backend refuses flagged releases - Informative error messages - Proper rejection logging 6. Frontend Validation (15 tests) - UpdateProgressModal appears exactly once - No duplicate modals on error - User-friendly error messages - Proper accessibility attributes ### CI/CD Integration - GitHub Actions workflow (.github/workflows/test-updates.yml) - Runs on PRs touching update-related code - Separate test runs for each scenario - Regression test to verify v4.28.0 issue prevention - Automatic artifact uploads ### Documentation - README.md: Architecture and overview - QUICK_START.md: Getting started guide - IMPLEMENTATION_SUMMARY.md: Complete implementation details - Helper scripts for setup and test execution ## Success Criteria Met ✅ Tests run in CI on every PR touching update code ✅ All scenarios pass reliably ✅ Tests catch v4.28.0 checksum issue type automatically ✅ Frontend UX regressions are blocked ## Usage ```bash cd tests/integration ./scripts/setup.sh # One-time setup npm test # Run all tests ``` See QUICK_START.md for detailed instructions. Addresses requirements from issue for comprehensive update flow testing with specific focus on preventing duplicate error modals and ensuring checksum validation works correctly.
28 lines
975 B
JSON
28 lines
975 B
JSON
{
|
|
"name": "pulse-integration-tests",
|
|
"version": "1.0.0",
|
|
"description": "Integration tests for Pulse update flow",
|
|
"type": "module",
|
|
"scripts": {
|
|
"test": "playwright test",
|
|
"test:ui": "playwright test --ui",
|
|
"test:debug": "playwright test --debug",
|
|
"test:headed": "playwright test --headed",
|
|
"test:report": "playwright show-report",
|
|
"docker:up": "docker-compose -f docker-compose.test.yml up -d",
|
|
"docker:down": "docker-compose -f docker-compose.test.yml down -v",
|
|
"docker:logs": "docker-compose -f docker-compose.test.yml logs -f",
|
|
"docker:rebuild": "docker-compose -f docker-compose.test.yml up -d --build",
|
|
"pretest": "npm run docker:up && sleep 10",
|
|
"posttest": "npm run docker:down"
|
|
},
|
|
"keywords": ["pulse", "integration", "e2e", "playwright"],
|
|
"author": "rcourtman",
|
|
"license": "MIT",
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.48.0",
|
|
"@types/node": "^20.10.0",
|
|
"typescript": "^5.3.0"
|
|
}
|
|
}
|