--- name: tables_qa lang: cpp domain: tools version: 0.1.0 description: "Testbed agresivo del modulo data_table — multi-tabla, menu QA toggleable, inyector eventos, counters live, version selector" tags: [imgui, dashboard, qa, testing, data-table, regression] uses_functions: [] uses_modules: - data_table_cpp uses_types: [] framework: "imgui" entry_point: "main.cpp" dir_path: "apps/tables_qa" repo_url: "https://gitea.organic-machine.com/dataforge/tables_qa" icon: phosphor: "test-tube" accent: "#f59e0b" --- # tables_qa Testbed agresivo del modulo `data_table_cpp` (v2.0.0+). Sustituye al `tables_playground` legacy (issue 0108). Provee un panel de control QA con toggles, inyector de eventos, counters live y version selector para ejercer todas las capacidades del modulo en runtime. ## Capacidades cubiertas Cada tab demuestra UNA capacidad del modulo. Toda capacidad listada en `docs/MODULES_API.md::Capability matrix consolidada` tiene su tab. | Tab | Capacidad | |---|---| | `basic` | Text default + sort + filter chips | | `renderers` | 1 columna por cada CellRenderer (Badge, Progress, Duration, Icon, Button, Dots, CategoricalChip, ColorScale) | | `buttons` | Click events: Retry, Cancel, Inspect (consumido en `events_out`) | | `color_rules` | ColorScale numerico + CategoricalChip configurado | | `dots` | Status timeline sparkline | | `joins` | 2 tablas + JoinStrategy Left/Inner/Right/Full toggleable | | `tql` | Pipeline TQL completo + Ask AI panel | | `drill` | Drill-down stages con breadcrumb | | `events` | Inyector de eventos via worker thread (RowDoubleClick, RowRightClick, ButtonClick) | | `compat` | Version selector + side-by-side con downgrade | ## Panel QA superior Barra de control con: - Toggles por feature (15+ checkboxes que mutan ColumnSpec en runtime). - Inyector de eventos (4 botones que disparan TableEvents via worker). - Counters live (`data_table::internal::*` — pendiente implementar en modulo). - Version dropdown (2.0.0 / 1.5.0 compat / 1.4.0 compat). - Boton "Run --self-test" (suite headless). - Boton "Export golden" (regenera PNGs baseline). ## Build ```bash cd cpp && cmake --build build --target tables_qa -j ``` ## Run ```bash ./cpp/build/apps/tables_qa/tables_qa ``` ## Headless self-test ```bash ./cpp/build/apps/tables_qa/tables_qa --self-test # Exit 0 = todas las capacidades verde # Exit 1 = algun TableEvent no se emite o renderer crash ``` ## Relacion con `tables_playground` (deprecado) `apps/primitives_gallery/playground/tables/` queda como **legacy archive** post-0108. Su `self_test.cpp` (603 checks contra logica legacy) NO se reemplaza directo — los tests aplicables a logica pura del registry ya viven en `cpp/tests/` (Catch2). Los tests aplicables a `data_table::render` viven aqui en `tables_qa --self-test`. ## Capability growth log Una linea por bump SemVer. Bump-type segun `.claude/commands/version.md`: - `major`: breaking observable (CLI args, schema BBDD propia, formato wire). - `minor`: feature aditiva (nuevo panel, endpoint, opcion). - `patch`: bugfix sin cambio observable. - v0.1.0 (2026-05-18) — baseline.