# SPRINT 10.9 — END-TO-END INTEGRATION

## METADATA
- Execution: Hodina 9
- Prerekvizity: Sprint 10.1-10.8 ALL COMPLETE
- Deliverables: Integrační testy, bug fixes, polish
- Estimated time: 45-55 min
- Output folder: Modifikace v existujícím React projektu + test reports

## AWS ENVIRONMENT
```
AWS_ACCESS_KEY_ID=AKIA[REDACTED_SEE_AWS_CONSOLE]
AWS_SECRET_ACCESS_KEY=[REDACTED_SEE_SECRETS_MANAGER]
AWS_DEFAULT_REGION=us-east-1
```

## OBJECTIVES
End-to-end integrace a testování celé SkyMailbox:
1. Propojit frontend s reálnými Lambda API
2. E2E test flow: register → login → compose → send → inbox → read → reply → delete
3. Fix bugy nalezené během integrace
4. Ověřit CORS na obou Lambda
5. Ověřit JWT flow across auth + email API
6. Performance check
7. Accessibility basics

## STEP-BY-STEP INSTRUCTIONS

### Krok 1: Nastavit .env s reálnými API URLs
Načíst AUTH_API_URL.txt a EMAIL_API_URL.txt z Sprint 10.1 a 10.2 output složek.

**Soubor:** `skymailbox/.env`
```
VITE_AUTH_API_URL=<auth function url from Sprint 10.1>
VITE_EMAIL_API_URL=<email function url from Sprint 10.2>
```

### Krok 2: Spustit frontend dev server
```bash
cd /mnt/outputs/SKYMAILBOX_SPRINTS/SPRINT_10.3_FRONTEND_SETUP/skymailbox
npm run dev
```

### Krok 3: E2E Test Script
**Soubor:** `test_e2e.py` (Python, urllib — žádné extra dependencies)

Automatizovaný test flow proti reálným API:

```
Test 1: Register new user
  POST /register → expect 200, token

Test 2: Login
  POST /login → expect 200, token

Test 3: Get profile
  GET /me → expect 200, user object

Test 4: Send email (self)
  POST /send {to: self_email} → expect 200

Test 5: Check inbox
  GET /inbox → expect email from Test 4

Test 6: Read email
  GET /email/:id → expect full email, is_read=true

Test 7: Reply (send to self)
  POST /send {to: self, subject: "Re: ..."} → expect 200

Test 8: Move to trash
  POST /move {target: TRASH} → expect 200

Test 9: Check folders
  GET /folders → expect INBOX, SENT, TRASH with correct counts

Test 10: Delete
  DELETE /email/:id → expect 200

Test 11: Duplicate register
  POST /register (same email) → expect 409

Test 12: Invalid login
  POST /login (wrong password) → expect 401

Test 13: Unauthorized access
  GET /inbox (no token) → expect 401
```

### Krok 4: Manuální frontend testing
Otevřít v browseru a ručně projít:
1. /login → Register nový účet
2. → Redirect na /inbox
3. Ověřit sidebar folders + unread counts
4. Click Compose → vyplnit formulář → Send
5. Ověřit email v inbox
6. Click na email → ověřit reader
7. Reply → ověřit pre-fill
8. Delete → ověřit redirect
9. Search → ověřit výsledky
10. Sign Out → ověřit redirect na login

### Krok 5: Bug fixes
Proiterovat všechny nalezené bugy a opravit je. Typické problémy:
- CORS errors (zkontrolovat Lambda CORS config)
- JWT decode errors (zkontrolovat JWT_SECRET match)
- Date parsing issues
- Routing issues po refreshi
- Loading states nefungují

### Krok 6: Performance quick check
- Inbox load time < 2s
- Email read load < 1s
- Send email < 3s
- Žádné memory leaks (unmount cleanup)

### Krok 7: Accessibility basics
- Všechny inputs mají label/aria-label
- Tab navigation funguje
- Color contrast min 4.5:1
- Focus visible na interaktivních elementech

### Krok 8: Připravit build pro deployment
```bash
npm run build
ls -la dist/
```
Ověřit build output, žádné chyby.

## COMPLETION CHECKLIST
- [ ] .env s reálnými API URLs
- [ ] E2E test script prošel (min 10/13 testů)
- [ ] Register → Login → Send → Read flow funguje
- [ ] CORS nemá žádné errors
- [ ] JWT auth funguje across APIs
- [ ] Frontend build projde bez chyb
- [ ] Žádné console errors v browseru
- [ ] Performance OK (inbox < 2s)
- [ ] Critical bugy opraveny

## DELIVERABLES LIST
1. `test_e2e.py`
2. `.env` (s reálnými URLs)
3. Bug fix commits (v React projektu)
4. `SPRINT_10.9_COMPLETE.md` (s test results)

## COMPLETION REPORT TEMPLATE
```markdown
# ✅ SPRINT 10.9 — INTEGRATION — COMPLETE

## Timestamp
[ISO datetime]

## E2E Test Results
| # | Test | Result |
|---|------|--------|
| 1 | Register | PASS/FAIL |
| 2 | Login | PASS/FAIL |
| 3 | Get Profile | PASS/FAIL |
| 4 | Send Email | PASS/FAIL |
| 5 | Check Inbox | PASS/FAIL |
| 6 | Read Email | PASS/FAIL |
| 7 | Reply | PASS/FAIL |
| 8 | Move to Trash | PASS/FAIL |
| 9 | Check Folders | PASS/FAIL |
| 10 | Delete | PASS/FAIL |
| 11 | Dup Register | PASS/FAIL |
| 12 | Bad Login | PASS/FAIL |
| 13 | No Token | PASS/FAIL |

**Pass rate:** X/13

## Bugs Found & Fixed
| Bug | Status |
|-----|--------|
| [description] | FIXED/OPEN |

## API URLs
- Auth: [url]
- Email: [url]

## Build
- Size: [dist size]
- Status: OK/FAILED

## Next Sprint
SPRINT_10.10_DEPLOYMENT
```
