feat(kotlin-compose): design system + 33 components + gallery_kt + e2e android emulator + scaffolder fixes

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-11 16:28:50 +02:00
parent 0bdb8454e1
commit cb6d9e61d1
152 changed files with 148262 additions and 25 deletions
@@ -0,0 +1,58 @@
---
name: gradle_screenshot_test
kind: function
lang: bash
domain: infra
version: "1.0.0"
purity: impure
signature: "gradle_screenshot_test(project_dir: string, module: string, flag: string) -> int"
description: "Corre screenshot tests Roborazzi de Composables (JVM, no necesita emulador)."
tags: [android, gradle, test, compose, roborazzi, screenshot]
params:
- name: project_dir
desc: "Raiz del proyecto Android (debe contener gradlew)"
- name: module
desc: "Modulo Gradle a testear. Default: app"
- name: --record
desc: "Re-grabar goldens en lugar de verificar"
output: "Stdout build log. Si verify y diff: linea 'DIFF: <path>'. Si record: linea 'RECORDED: <path>'. Exit 0 OK, 1 mismatch."
uses_functions: [gradle_run_bash_infra]
uses_types: []
returns: []
returns_optional: false
error_type: "error_go_core"
imports: []
tested: false
tests: []
test_file_path: ""
file_path: "bash/functions/infra/gradle_screenshot_test.sh"
notes: "Roborazzi corre en JVM (Robolectric) — rapido, no necesita emulador. Goldens viven en src/test/snapshots/ y se commitean al repo. App debe declarar plugin io.github.takahirom.roborazzi en build.gradle.kts."
---
## Ejemplo
```bash
# Verificar screenshots (modo CI)
bash bash/functions/infra/gradle_screenshot_test.sh /path/to/MyApp
# Modulo no-default
bash bash/functions/infra/gradle_screenshot_test.sh /path/to/MyApp feature_login
# Re-grabar goldens tras cambio de UI intencional
bash bash/functions/infra/gradle_screenshot_test.sh /path/to/MyApp app --record
```
## Salida
| Situacion | Salida |
|-----------|--------|
| Verify OK | log de Gradle, exit 0 |
| Verify FAIL | log + `DIFF: <project>/<module>/build/outputs/roborazzi/`, exit 1 |
| Record OK | log + `RECORDED: <project>/<module>/src/test/snapshots/`, exit 0 |
## Notas
Source-able y ejecutable directo. Sourcear `gradle_run.sh` resuelve JAVA_HOME y ANDROID_HOME de forma identica al resto de funciones `gradle_*`.
Los diffs en `build/outputs/roborazzi/` muestran imagen original, imagen actual e imagen de diferencia. Util para revisar regresiones visuales antes de hacer `--record`.
---