# 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 {repo_slug} — Build Reports

{repo_slug}

``` ## Raportti-indeksin sisältö ```html ← Back to builds

Build abc12345

``` ## Sijainti - `report-service/generate-index.sh` — generoi tai päivittää indeksit - Kutsutaan `push-reports.sh`:sta (Ticket 0003) ## Verifiointi ```bash bash report-service/generate-index.sh temperature-store abc12345 "2024-06-08 14:30" "master" "success" ``` → `/reports/temperature-store/index.html` sisältää rivin `abc12345` → `/reports/temperature-store/abc12345/index.html` validi HTML ## Viitteet - `docs/report-hosting.md` — Indeksisivujen määrittely - `docs/requirements.md` — UC3: Kehittäjä selaa projektin build-historiaa