13 providers de soma no tenían test, y el guard que dos documentos afirmaban
que lo impedía (`NO_MISSING_PROVIDER_TESTS`) no existe. Van los tres primeros,
cada uno apuntado a la doctrina que el provider codifica y que hoy no cubría
nadie — no a su superficie trivial.
- **`button`** (7): la resolución `color`↔`intent`. Un intent evaluativo gana
sobre la jerarquía Y suprime el marcador custom (la estética no puede
contradecir a la semántica). Cubre también que `onPress` devuelve el intent
como contexto VISUAL, no como carga del evento — el contacto no lleva intent
(libro cap. 22 §11).
- **`anchor-nav`** (6): la escalera de `activeId` (primero en banda → último
pasado → primero en orden DOM) y el ref-counting que impide que un remount
keyed tire un target aún referenciado por su hermano.
- **`textarea`** (9): que el warn de overflow se emita SOLO en la transición
—la proyección es `untilFix` y persiste, re-emitir sólo la reemplazaría—, su
retracción al bajar del tope, y la matriz completa de `submitOn`
(`enter` / `mod+enter` / `false`).
Dos fallaron a la primera y en ambos el código tenía razón y la aserción no:
`data-color-custom` es flag de presencia (el color viaja por la var CSS
`--color-custom`, que estampa eidos), y `clearTarget` no dispara sin la parte
`input` montada porque la retracción apunta a ese elemento.
Arnés: el patrón ya establecido en los 87 tests existentes. Donde hace falta
`langs`, el stub devuelve el fallback embebido del idlangref en vez de copia
inventada — es lo que hace el resolver real cuando no encuentra entrada.
Quedan 10: `chat-list`, `chronos`, `field-langs`, `gradient-builder`,
`gradient-picker`, `month-grid`, `nav-tree`, `password-field`, `sidebar`,
`year-grid`. Al cerrar la lista, escribir el guard que la mantenga cerrada.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>