3e4278d766
Cierra el ciclo de testabilidad del widget metainterfaz. Hasta ahora los tests del MetaBackend trait vivían como impl privada en backend.rs; el widget no podía testear handlers sin levantar NakuiBackend (que depende de event log + Rhai). yahweh-meta-runtime: - Nuevo `pub mod testing` con MockBackend (renombre del MemBackend privado, ahora público). Constructores: new(), with_records(iter), with_morphism(name, handler) builder. Métodos de inspección total_records / records_for. Bajo `pub mod testing` (no cfg test) para que crates downstream lo usen en sus dev tests. - Tests del trait en backend.rs simplificados: usan MockBackend en vez del MemBackend duplicado. 8 backend.rs + 9 nuevos del mock. yahweh-widget-meta-form: - Dev-dep nueva: gpui con feature "test-support" (TestAppContext). - MetaApp::apply_action ahora pub (era privado). Necesario para invocar handlers desde tests E2E. - Nuevo tests/widget_with_mock_backend.rs con 4 tests #[gpui::test]: meta_app_constructs, open_view_action_does_not_panic, backend_state_visible_from_widget_perspective, morphism_handler_can_be_registered_and_called_via_widget. Tests: 47→56 yahweh-meta-runtime, 3→7 yahweh-widget-meta-form. Total stack 109 verdes. Limitación: render() no se invoca (requiere window context más rico). Tests verifican state machine, no pixels. Snapshot tests serían scope futuro. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
21 lines
882 B
TOML
21 lines
882 B
TOML
[package]
|
|
name = "yahweh-widget-meta-form"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
description = "Yahweh — widget metainterfaz: lista, formulario, modal de delete y selector EntityRef que renderean cualquier `yahweh-meta-schema::Module` contra cualquier `yahweh_meta_runtime::MetaBackend`. App-agnostic."
|
|
|
|
[dependencies]
|
|
gpui = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
uuid = { workspace = true, features = ["serde"] }
|
|
yahweh-meta-runtime = { path = "../../libs/meta-runtime" }
|
|
yahweh-meta-schema = { path = "../../libs/meta-schema" }
|
|
yahweh-theme = { path = "../../libs/theme" }
|
|
yahweh-widget-text-input = { path = "../text_input" }
|
|
|
|
[dev-dependencies]
|
|
# Activar TestAppContext + helpers para tests del widget que
|
|
# necesiten un cx GPUI sintético (sin abrir window real).
|
|
gpui = { workspace = true, features = ["test-support"] }
|