v0.2.6-pre.011
This commit is contained in:
@@ -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