Context
Follow-up from PR #133 (Story #92) code review. Remote URL smoke tests were deferred because they require network access and are not suitable for offline CI environments.
Problem
Current smoke tests (scripts/smoke-tests/scenarios/source-resolution.sh) only cover local sources (directories, offline mode). Remote URL scenarios are not tested end-to-end:
- Install from remote HTTPS URL
- Update from remote HTTPS URL
- Network failure handling (timeout, connection refused)
- Download retry with exponential backoff
- Progress indicator during download
Proposed Solution
Create new smoke test scenario for network-dependent tests:
File: scripts/smoke-tests/scenarios/remote-source-resolution.sh
Tag: OFFLINE_SAFE=false (filtered out by --offline-only flag)
Test scenarios:
- Install from remote HTTPS URL (GitHub release artifact)
- Update from remote HTTPS URL
- Download progress indicator verification (TTY output check)
- Error: Invalid URL (malformed)
- Error: 404 Not Found
- Error: Network timeout (simulated with bad URL)
Mock setup:
- Use real GitHub release URL for testing (predictable, stable)
- Alternative: Set up local HTTP server with test fixtures
Acceptance Criteria
Technical Notes
Retry verification:
- Simulate transient failure (connection refused)
- Verify retry attempts with exponential backoff (1s, 2s, 4s)
- Verify max 3 retries before giving up
Progress verification:
- Capture stdout during download
- Verify progress indicator format:
[N/M] registry-name
- Verify operation summary at completion
Priority
Low - Unit tests already cover retry logic and error handling. Smoke tests provide additional E2E confidence but are not critical for correctness.
Related
Context
Follow-up from PR #133 (Story #92) code review. Remote URL smoke tests were deferred because they require network access and are not suitable for offline CI environments.
Problem
Current smoke tests (
scripts/smoke-tests/scenarios/source-resolution.sh) only cover local sources (directories, offline mode). Remote URL scenarios are not tested end-to-end:Proposed Solution
Create new smoke test scenario for network-dependent tests:
File:
scripts/smoke-tests/scenarios/remote-source-resolution.shTag:
OFFLINE_SAFE=false(filtered out by--offline-onlyflag)Test scenarios:
Mock setup:
Acceptance Criteria
remote-source-resolution.shcreated withOFFLINE_SAFE=falsetag--offline-onlyflag usedrun-all.shto include new scenario (but exclude with--offline-only)Technical Notes
Retry verification:
Progress verification:
[N/M] registry-namePriority
Low - Unit tests already cover retry logic and error handling. Smoke tests provide additional E2E confidence but are not critical for correctness.
Related
scripts/smoke-tests/scenarios/source-resolution.sh(local-only tests)