registri dei piani in git (AI-OS#309)
Refs gitea:Adriano/AI-OS#310 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
### Task 6: GUID esposto — resolve, componenti e GET singolo — REPORT
|
||||
|
||||
**Stato:** completato. Test verdi (62/62), build senza warning.
|
||||
|
||||
**TDD:** aggiunti test in `tests/content.test.ts` (guid da `resolveContent`) e
|
||||
`tests/content-api.test.ts` (GET singolo). Falliti come atteso prima
|
||||
dell'implementazione (`guid` assente / modulo mancante), verdi dopo.
|
||||
|
||||
Due scostamenti dal brief, entrambi necessari per far girare i test contro dati reali:
|
||||
- Il tag di esempio `home.hero.title` non esiste nel seed reale (esistono
|
||||
`home.hero.title-line-1/2/3`, `home.hero.cta`, ecc.). Sostituito con
|
||||
`home.hero.cta` in entrambi i test.
|
||||
- `require('../src/lib/content')` falliva con `Cannot find module` sotto
|
||||
vitest/vite (risoluzione ESM). Sostituito con `import { resolveContent }`
|
||||
in testa al file, stessa asserzione.
|
||||
|
||||
**Variante di routing scelta: B — GET spostato dentro `[tag].ts`.**
|
||||
|
||||
Come previsto dal brief, ho prima creato l'endpoint come
|
||||
`src/pages/api/admin/content/[tag]/index.ts` (variante A) e verificato con
|
||||
`npm run build`. Astro ha emesso il warning:
|
||||
|
||||
```
|
||||
[WARN] [router] The route "/api/admin/content/[tag]" is defined in both
|
||||
"src/pages/api/admin/content/[tag]/index.ts" and
|
||||
"src/pages/api/admin/content/[tag].ts" using SSR mode. A dynamic SSR route
|
||||
cannot be defined more than once.
|
||||
[WARN] [router] A collision will result in a hard error in following versions of Astro.
|
||||
```
|
||||
|
||||
Collisione confermata → applicata la contingenza: `GET` spostato dentro
|
||||
`src/pages/api/admin/content/[tag].ts` (accanto al `PUT` esistente, stessa
|
||||
logica di query/404/styleOptions), file `[tag]/index.ts` eliminato. Rilanciato
|
||||
`npm run build`: nessun warning di routing. Test del GET (che ora importa
|
||||
`../src/pages/api/admin/content/[tag]`) verde con la variante finale.
|
||||
|
||||
**File toccati:**
|
||||
- `src/lib/content.ts` — `Entry.guid`, query con `guid`, `resolve()` ritorna `guid`.
|
||||
- `src/components/content/T.astro` — `data-guid` su entrambi i rami.
|
||||
- `src/components/content/TImg.astro` — riscritto per usare `resolveContent`
|
||||
(non più `getImageOverride`) e propagare `data-guid` su entrambi i rami.
|
||||
- `src/pages/api/admin/content/[tag].ts` — aggiunto `GET` (variante finale).
|
||||
- `tests/content.test.ts`, `tests/content-api.test.ts` — nuovi test.
|
||||
|
||||
**Verifica:** `npm test` → 12 file, 62 test, tutti verdi. `npm run build` →
|
||||
completa senza warning di routing.
|
||||
|
||||
**Commit:** `5ce10da` — feat(content): guid in resolve/componenti + GET /api/admin/content/[tag]
|
||||
Reference in New Issue
Block a user