Files
khadhroony-solana-project/crates/ksp-app-wallet-desk/unit_tests/wallet_session.rs
2026-08-21 10:01:11 +02:00

40 lines
1.5 KiB
Rust

// file: crates/ksp-app-wallet-desk/unit_tests/wallet_session.rs
// version: 2
//! Unit tests for Wallet Desk session DTOs and password request boundaries.
#[test]
fn no_selection_projection_contains_no_wallet_identity() {
let session = crate::WalletSession::no_selection();
let dto = session.safe_projection();
assert_eq!(dto.state, crate::WalletSessionStateDto::NoSelection);
assert!(dto.wallet_id.is_none());
assert!(dto.filename.is_none());
}
#[test]
fn create_request_does_not_require_debug_or_clone_password_contracts() {
fn accepts_request(_: crate::WalletCreateRequestDto) {}
let request = crate::WalletCreateRequestDto {
alias: std::option::Option::None,
filename: "test.kspwallet".to_owned(),
initial_note: std::option::Option::None,
owner_password: "operator-test-owner".to_owned(),
view_password: std::option::Option::Some("operator-test-view".to_owned()),
};
accepts_request(request);
}
#[test]
fn unlock_request_does_not_require_debug_or_clone_password_contracts() {
fn accepts_request(_: crate::WalletUnlockRequestDto) {}
let request = crate::WalletUnlockRequestDto { password: "operator-test-unlock".to_owned() };
accepts_request(request);
}
#[test]
fn session_state_contract_includes_view_owner_and_privileged_operation() {
assert_ne!(crate::WalletSessionStateDto::ViewOpen, crate::WalletSessionStateDto::OwnerOpen);
assert_ne!(crate::WalletSessionStateDto::PrivilegedOperation, crate::WalletSessionStateDto::Locked);
}