rcourtman
728a239753
Fix integration test data directory permissions
...
Root cause: Pulse server was crashing on startup with permission denied when
trying to create .encryption.key file.
The docker-compose test config set PULSE_DATA_DIR=/tmp/pulse-test-data, but
this directory was owned by root (created by Docker volume mount). The
entrypoint script only chowns /data, not /tmp/pulse-test-data.
Solution: Change PULSE_DATA_DIR to /data which is already handled by the
entrypoint script's chown command (line 36 of docker-entrypoint.sh).
This fixes the fatal error:
failed to get encryption key: failed to save key:
open /tmp/pulse-test-data/.encryption.key: permission denied
Related to #695
2025-11-12 09:10:30 +00:00
Claude
2321106c60
Add comprehensive integration test suite for update flow
...
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.
2025-11-11 09:31:52 +00:00