Files
khadhroony-solana-project/crates/ksp-app-wallet-desk/unit_tests/wallet_import.rs
2026-08-21 16:22:16 +02:00

42 lines
1.9 KiB
Rust

// file: crates/ksp-app-wallet-desk/unit_tests/wallet_import.rs
// version: 2
#[test]
fn import_request_does_not_require_debug_or_clone_password_contracts() {
fn consume(_request: crate::WalletImportRequestDto) {}
consume(crate::WalletImportRequestDto {
alias: std::option::Option::None,
filename: "imported.kspwallet".to_owned(),
initial_note: std::option::Option::None,
owner_password: "owner-canary".to_owned(),
view_password: std::option::Option::Some("view-canary".to_owned()),
});
}
#[test]
fn staged_base58_source_keeps_only_safe_projection_and_bounded_zeroizing_bytes() {
let source = "99eUso3aSbE9tqGSTXzo3TLfKb9RkMTURrHKQ1K7Zh3StnzFNUx8FKCPPPPpR479qsw5zv2WNBKmgiz7WqgAJfM";
let path = std::env::temp_dir().join(format!("ksp-wallet-import-{}-seed7.txt", std::process::id()));
let written = std::fs::write(path.as_path(), source.as_bytes());
assert!(written.is_ok());
let runtime = tokio::runtime::Builder::new_current_thread().enable_all().build();
assert!(runtime.is_ok());
let runtime = match runtime {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
let staged = runtime.block_on(crate::stage_wallet_import_source(path.clone(), crate::WalletTransferFormatDto::SolanaKeypairBase58));
let removed = std::fs::remove_file(path.as_path());
assert!(removed.is_ok());
assert!(staged.is_ok());
let staged = match staged {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
let projection = staged.safe_projection();
assert_eq!(projection.pubkey, "GmaDrppBC7P5ARKV8g3djiwP89vz1jLK23V2GBjuAEGB");
assert_eq!(projection.format, crate::WalletTransferFormatDto::SolanaKeypairBase58);
assert!(projection.source_name.ends_with("seed7.txt"));
assert_eq!(staged.source_bytes(), source.as_bytes());
}