Files
loader/_docs/02_document/tests/resilience-tests.md
T
Oleksandr Bezdieniezhnykh 8f7deb3fca Add E2E tests, fix bugs
Made-with: Cursor
2026-04-13 05:17:48 +03:00

55 lines
1.8 KiB
Markdown

# Resilience Tests
### NFT-RES-01: API unavailable during login
**Summary**: Verify the system returns an error when the upstream API is unreachable.
**Traces to**: AC-2 (negative), AC-3
**Category**: External dependency failure
**Preconditions**: Loader service is running; mock API is stopped.
**Steps**:
| Step | Consumer Action | Expected System Response |
|------|----------------|------------------------|
| 1 | POST /login with valid credentials | HTTP 401, body has `"detail"` field with connection error |
**Expected outcome**: HTTP 401 with error message indicating API unreachable
---
### NFT-RES-02: CDN unavailable during resource download
**Summary**: Verify the system returns an error when CDN is unreachable and no local cache exists.
**Traces to**: AC-4 (negative)
**Category**: External dependency failure
**Preconditions**: Logged in; mock CDN is stopped; no local `.big` file cached.
**Steps**:
| Step | Consumer Action | Expected System Response |
|------|----------------|------------------------|
| 1 | POST /load/testmodel | HTTP 500, body has `"detail"` field |
**Expected outcome**: HTTP 500 indicating CDN download failure
---
### NFT-RES-03: Docker daemon unavailable during unlock
**Summary**: Verify unlock reports error when Docker daemon is not accessible.
**Traces to**: AC-9 (negative)
**Category**: External dependency failure
**Preconditions**: Docker socket not mounted / daemon stopped; encrypted archive exists.
**Steps**:
| Step | Consumer Action | Expected System Response |
|------|----------------|------------------------|
| 1 | POST /unlock with valid credentials | HTTP 200 (background task starts) |
| 2 | Poll GET /unlock/status | State transitions to "error", error field describes Docker failure |
**Expected outcome**: unlock_state = "error" with CalledProcessError detail