tawasuyu

tawasuyu/llimphi

Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.

Rust 229TOML 101Markdown 82Shell 24052 Definitions

⎇ main llimphi-wasm-core/tests/dev_trust.rs Rust · 38 lines · 1.6 KB History Who touched what raw

chore: refresco desde el monorepo — 27 crates nuevos (anim, lottie, svg, mesh, image, layer, test, wire-view, widgets rag-sidebar/router/lazy-list/rive-button) y sync de los 95 existentes 93253cc22 · Sergio ·

1//! Atajo de desarrollo `LLIMPHI_WASM_DEV_TRUST` (mudanza a Linux, 2026-07-17).
2//!
3//! En su PROPIO binario de test (proceso aislado): setea/limpia la variable de
4//! entorno, y así no cruza estado con los tests unitarios de la lib que corren
5//! en paralelo en otro proceso y asumen el modo estricto por default.
6
7use llimphi_wasm_core::{resolve, AppRef, MapSource, TrustRing};
8
9#[test]
10fn dev_trust_corre_sin_concesion_y_es_fail_closed_por_default() {
11    let mut src = MapSource::new();
12    let bytecode = src.put(b"\0asm bytecode de prueba");
13    let trust = TrustRing::empty(); // nadie de confianza
14
15    // Una app que DECLARA PERMISO_RED (1<<0) pero SIN concesión que lo respalde.
16    let app = AppRef {
17        bytecode,
18        declarados: 1,
19        concesion: None,
20    };
21
22    // 1) Fail-closed por default: sin la env, sin concesión ⇒ cero capacidades.
23    std::env::remove_var("LLIMPHI_WASM_DEV_TRUST");
24    let v = resolve(&src, &trust, &app).expect("resuelve estricto");
25    assert_eq!(v.permisos, 0, "sin dev-trust y sin concesión: cero caps");
26
27    // 2) Con el atajo EXPLÍCITO: corre con los permisos DECLARADOS, sin firma.
28    std::env::set_var("LLIMPHI_WASM_DEV_TRUST", "1");
29    let v = resolve(&src, &trust, &app).expect("resuelve dev-trust");
30    assert_eq!(v.permisos, 1, "dev-trust: honra los permisos declarados");
31
32    // 3) Un valor no reconocido NO activa el atajo (fail-closed).
33    std::env::set_var("LLIMPHI_WASM_DEV_TRUST", "0");
34    let v = resolve(&src, &trust, &app).expect("resuelve");
35    assert_eq!(v.permisos, 0, "valor != 1/true no activa el atajo");
36
37    std::env::remove_var("LLIMPHI_WASM_DEV_TRUST");
38}