v0.2.6-pre.011
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-app-wallet-desk/tests/desktop_contract.rs
|
||||
// version: 11
|
||||
// version: 12
|
||||
|
||||
//! Desktop build, shell and Config-status contract audits for Wallet Desk.
|
||||
|
||||
@@ -279,3 +279,28 @@ fn pre_010_owner_and_view_authorized_credential_rotations_preserve_session_proje
|
||||
assert!(main.contains("viewAuthorized"));
|
||||
assert!(main.contains("Les secrets Config"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pre_011_strong_view_administration_is_owner_only_and_refreshes_safe_status() {
|
||||
let root = app_root();
|
||||
let security = read_text(root.join("src/wallet_security.rs").as_path());
|
||||
let state = read_text(root.join("src/app_state.rs").as_path());
|
||||
let tauri = read_text(root.join("src/tauri.rs").as_path());
|
||||
let html = read_text(root.join("frontend/main.html").as_path());
|
||||
let main = read_text(root.join("frontend/ts/main.ts").as_path());
|
||||
assert!(security.contains("WalletViewSecurityStatusDto"));
|
||||
assert!(state.contains("owner.disable_view"));
|
||||
assert!(state.contains("owner.recreate_view"));
|
||||
assert!(state.contains("result_view_enabled = false"));
|
||||
assert!(state.contains("result_view_enabled = true"));
|
||||
assert!(tauri.contains("disable_wallet_view"));
|
||||
assert!(tauri.contains("recreate_wallet_view"));
|
||||
assert!(html.contains("id=\"disableWalletViewModal\""));
|
||||
assert!(html.contains("id=\"recreateWalletViewModal\""));
|
||||
assert!(html.contains("id=\"disableWalletView\""));
|
||||
assert!(html.contains("id=\"recreateWalletView\""));
|
||||
assert!(main.contains("runStrongViewDisable"));
|
||||
assert!(main.contains("runStrongViewRecreate"));
|
||||
assert!(main.contains("applyViewSecurityStatus"));
|
||||
assert!(main.contains("pre.011-strong-view-administration"));
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-app-wallet-desk/tests/desktop_security.rs
|
||||
// version: 11
|
||||
// version: 12
|
||||
|
||||
//! Static desktop security contracts for the Wallet Desk pre.002 shell.
|
||||
|
||||
@@ -217,3 +217,48 @@ fn rotation_passwords_are_request_only_confirmed_frontend_side_and_never_logged(
|
||||
assert!(!main.contains("frontendTrace(\"main\", request.password"));
|
||||
assert!(!main.contains("KSP_SECRET_WALLET_PASS_"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn strong_view_administration_is_owner_only_uses_bootstrap_modals_and_returns_no_secret() {
|
||||
let root = app_root();
|
||||
let security = read_text(root.join("src/wallet_security.rs").as_path());
|
||||
let state = read_text(root.join("src/app_state.rs").as_path());
|
||||
let tauri = read_text(root.join("src/tauri.rs").as_path());
|
||||
let main = read_text(root.join("frontend/ts/main.ts").as_path());
|
||||
let status = security.split("pub(crate) struct WalletViewSecurityStatusDto").nth(1);
|
||||
assert!(status.is_some());
|
||||
let fields = status
|
||||
.unwrap_or_default()
|
||||
.split("}\n")
|
||||
.next()
|
||||
.unwrap_or_default()
|
||||
.lines()
|
||||
.filter(|line| return line.trim_start().starts_with("pub(crate) "))
|
||||
.collect::<std::vec::Vec<_>>()
|
||||
.join("\n");
|
||||
assert!(!fields.contains("password"));
|
||||
assert!(!fields.contains("pubkey"));
|
||||
assert!(!fields.contains("alias"));
|
||||
assert!(!fields.contains("note"));
|
||||
assert!(state.contains("begin_owner_operation(\"view_disable\")"));
|
||||
assert!(state.contains("begin_owner_operation(\"view_recreate\")"));
|
||||
assert!(!state.contains("begin_view_operation(\"view_disable\")"));
|
||||
assert!(!state.contains("begin_view_operation(\"view_recreate\")"));
|
||||
let disable = tauri.find("async fn disable_wallet_view");
|
||||
assert!(disable.is_some());
|
||||
let disable = &tauri[disable.unwrap_or_default()..];
|
||||
let disable = disable.split("#[tauri::command]").next().unwrap_or_default();
|
||||
assert!(!disable.contains("request:"));
|
||||
let recreate = tauri.find("async fn recreate_wallet_view");
|
||||
assert!(recreate.is_some());
|
||||
let recreate = &tauri[recreate.unwrap_or_default()..];
|
||||
let recreate = recreate.split("#[tauri::command]").next().unwrap_or_default();
|
||||
assert!(recreate.contains("WalletPasswordRotationRequestDto"));
|
||||
assert!(main.contains("new Modal(disableModalElement)"));
|
||||
assert!(main.contains("new Modal(recreateModalElement)"));
|
||||
assert!(main.contains("clearStrongViewSensitiveInputs"));
|
||||
assert!(main.contains("hidden.bs.modal"));
|
||||
assert!(!main.contains("window.confirm"));
|
||||
assert!(!main.contains("frontendDebug(\"main\", request.password"));
|
||||
assert!(!main.contains("frontendTrace(\"main\", request.password"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user