# Ticket 0005: `report-service/` — indeksigenerointi **Vaihe:** 5/12 **Status:** pending **Feature branch:** `feature/0005-report-service-index-generation` **TDD required:** Yes **Feature file required:** Yes **Required context:** - `docs/test-plan/tdd-guide.md` - `tests/features/0005-report-index.feature` - Skills: `tdd`, `implementation`, `clean-code`, `bash-script` --- ## TDD — Red-Green-Refactor ### Red Kirjoita `tests/generate-index.bats`: - Projektin indeksi: `generate-index.sh temperature-store abc12345 "2024-06-08 14:30" "master" "success"` → HTML sisältää rivin `abc12345` - Buildin indeksi: sisältää linkit raportteihin + "Back to builds" - Useampi build: uusin ensin listassa - Status: `success` → ✅, `failure` → ❌ - Tyhjä status → ei generoida riviä ```bash bats tests/generate-index.bats # FAIL ``` ### Green `report-service/generate-index.sh` — staattinen HTML-generaattori. ```bash bats tests/generate-index.bats # PASS ``` ### Refactor Varmista HTML-valiidius, edge-caset (puuttuvat parametrit). ## DoD - [ ] Cucumber: `@ticket-0005 and @mock` → kaikki skenaariot GREEN - [ ] `tests/generate-index.bats` — kaikki testit läpi - [ ] Projektin indeksi lista buildit aikajärjestyksessä - [ ] Buildin indeksi lista raportit linkkeinä - [ ] "Back to builds" -navigaatio - [ ] Status-emoji ✅/❌ --- ## Toiminto Staattisten HTML-indeksisivujen generointi MinIO:hon. Kaksi tasoa: 1. **Projektin build-indeksi** (`/reports/{repo}/index.html`): lista buildeista aikajärjestyksessä 2. **Buildin raportti-indeksi** (`/reports/{repo}/{commit_short}/index.html`): lista raporteista linkkeinä ## Build-indeksin sisältö ```html