b15106fc09
- CMakeLists.txt - app.md - appicon.ico - main.cpp - perf_tests.cpp - perf_tests.h - qa_panel.cpp - qa_panel.h - qa_state.cpp - qa_state.h - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
87 lines
3.0 KiB
Markdown
87 lines
3.0 KiB
Markdown
---
|
|
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.
|