test(state): cover InventoryCubit and VarietyDetailCubit; refresh block1 status doc

This commit is contained in:
vjrj 2026-07-09 22:03:36 +02:00
parent a96d82add9
commit cf5d302cc1
4 changed files with 292 additions and 47 deletions

View file

@ -30,31 +30,30 @@ JSON por locale, compatible Weblate). Ver [`../../apps/app_seeds`](../../apps/ap
- **Catálogo de especies**: 14 hortícolas ibéricas (familia + nombres ES/EN),
sembrado idempotente al arrancar, búsqueda + autocompletado.
- **Germinación**: pruebas por lote (germinadas/muestra → tasa derivada), badge
reactivo.
- **Tests**: 37 verdes, 0 saltados. `analyze` + `format` limpios.
reactivo. Avisos de viabilidad por especie (años de viabilidad + año de cosecha).
- **Schema v8**: procedencia, calendario de cultivo multi-mes (bitmask), escala de
abundancia, "necesita reproducción", chequeos de estado, formato de conservación.
- **Digitalización masiva**: import CSV aditivo, import/export JSON con
reconciliación LWW, borradores foto-first con OCR en dispositivo (es/en),
alta rápida "guardar y añadir otra".
- **Edición completa**: editar/borrar lotes (`updateLot`/`softDeleteLot`),
añadir/quitar nombres vernáculos (OR-Set con tombstones), editar campos,
fotos (portada, visor, borrado), enlaces externos.
- **Tests**: ~190 verdes, 0 saltados, incl. cubits de estado (`InventoryCubit`,
`VarietyDetailCubit`, `QuickAddCubit`). `analyze` + `format` limpios.
## Pendiente en el Bloque 1 (pulido) ⏳
- **Editar nombres vernáculos** ("también conocida como": hoy solo lectura;
falta añadir/quitar — colección OR-Set).
- **Editar/borrar lotes** (se pueden añadir pero no modificar/eliminar). Falta
`updateLot`/`softDeleteLot` en el repo (hoy solo `addLot` en
[`variety_repository.dart`](../../apps/app_seeds/lib/data/variety_repository.dart))
y la afordancia en las tiles de lote de
[`variety_detail_screen.dart`](../../apps/app_seeds/lib/ui/variety_detail_screen.dart).
El soft-delete ya tiene infraestructura (`isDeleted`/tombstone vía `SyncColumns`).
- **Editar cantidad del lote**: la UI de alta solo ofrece 6 `QuantityKind` como
chips; falta campo para cantidad numérica (`precise`) y etiqueta libre (`label`),
que el modelo (`Quantity`) ya soporta.
- (Opcional) QR de recuperación de la semilla raíz; almacenamiento cifrado de
fotos fuera de la BD (hoy van como BLOB cifrado dentro de la BD, que cumple la
regla).
### Feedback de prueba (vjrj, 2026-07-07)
Tras probar la app: no se pueden editar unidades/cantidad ni editar/borrar lotes
(solo añadir) — **esperado**, cubierto por los pendientes de arriba. Echa en falta
la iconografía de los mockups (ver nota siguiente).
- **QR de recuperación de la semilla raíz** + fichero de copia cifrado único y
restauración (ver [`backup-and-recovery.md`](backup-and-recovery.md)) — fase
planificada.
- **Comercio local sin red**: UI para `offer_status` (regalo/trueque/venta),
vista "lo que comparto", catálogo imprimible — fase planificada.
- **Cantidad precisa (gramos/nº) en la UI**: diferida a propósito. "Cuánto tengo"
lo responde la **escala de abundancia** (v8); la cantidad numérica se retomará
cuando las Offers reales la pidan (decisión 2026-07-09).
- (Opcional) almacenamiento cifrado de fotos fuera de la BD (hoy BLOB cifrado
dentro de la BD, que cumple la regla).
## Iconografía de los mockups (diseño futuro) 🎨