v0.3.8-pre.007-fix.003

This commit is contained in:
2026-09-03 18:59:39 +02:00
parent c9e52d1926
commit 10515d1562
4 changed files with 89 additions and 17 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-app-store-desk/tests/desktop_security.rs
// version: 7
// version: 8
//! Security boundary tests for the Store Desk scaffold.
@@ -130,21 +130,27 @@ fn pre_007_transaction_request_rejects_datatables_search_order_draw_and_physical
}
#[test]
fn pre_007_fix_001_copy_tracing_never_logs_long_identifier_values() {
fn pre_007_fix_003_copy_tracing_is_field_id_only_without_value_material() {
let frontend = include_str!("../frontend/ts/main.ts");
assert!(frontend.contains("Store Desk long text copy requested"));
assert!(frontend.contains("Store Desk long text copy completed"));
assert!(frontend.contains("Store Desk long text copy failed"));
assert!(frontend.contains("{ fieldId }"));
for forbidden in [
r#"{ fieldId, value }"#,
r#"{ value, fieldId }"#,
r#"{ value }"#,
r#"{ signature }"#,
r#"{ fieldId, signature }"#,
r#"{ signature, fieldId }"#,
for allowed in [
r#"frontendDebug("main", "Store Desk long text copy requested", { fieldId })"#,
r#"frontendError("main", "Store Desk long text copy failed", { fieldId })"#,
r#"frontendDebug("main", "Store Desk long text copy completed", { fieldId })"#,
] {
assert!(!frontend.contains(forbidden), "long identifier value leaked into copy tracing: {forbidden}");
assert!(frontend.contains(allowed), "expected field-id-only copy tracing call is missing: {allowed}");
}
for forbidden in [
r#"frontendDebug("main", "Store Desk long text copy requested", { fieldId, value })"#,
r#"frontendDebug("main", "Store Desk long text copy requested", { value, fieldId })"#,
r#"frontendDebug("main", "Store Desk long text copy requested", { value })"#,
r#"frontendError("main", "Store Desk long text copy failed", { fieldId, value })"#,
r#"frontendError("main", "Store Desk long text copy failed", { value, fieldId })"#,
r#"frontendError("main", "Store Desk long text copy failed", { value })"#,
r#"frontendDebug("main", "Store Desk long text copy completed", { fieldId, value })"#,
r#"frontendDebug("main", "Store Desk long text copy completed", { value, fieldId })"#,
r#"frontendDebug("main", "Store Desk long text copy completed", { value })"#,
] {
assert!(!frontend.contains(forbidden), "copy tracing leaked copied value material: {forbidden}");
}
}