v0.2.6-pre.013

This commit is contained in:
2026-08-21 17:15:40 +02:00
parent ecbd6b746d
commit 4b350b4161
17 changed files with 687 additions and 31 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-app-wallet-desk/unit_tests/wallet_inventory.rs
// version: 1
// version: 2
const VALID_WALLET: &[u8] = include_bytes!("../../ksp-wallet-lib/tests/fixtures/kspwallet_v1_full_vector.json");
@@ -13,7 +13,11 @@ fn inventory_lists_regular_wallets_reports_invalid_candidates_and_ignores_other_
assert!(std::fs::write(root.join("beta.kspwallet"), VALID_WALLET).is_ok());
assert!(std::fs::write(root.join("alpha.kspwallet"), b"not-json").is_ok());
assert!(std::fs::write(root.join("ignored.txt"), VALID_WALLET).is_ok());
assert!(std::fs::write(root.join("upper.KSPWALLET"), VALID_WALLET).is_ok());
assert!(std::fs::write(root.join("backup.kspwallet.bak"), VALID_WALLET).is_ok());
assert!(std::fs::create_dir(root.join("directory.kspwallet")).is_ok());
assert!(std::fs::create_dir(root.join("nested")).is_ok());
assert!(std::fs::write(root.join("nested/hidden.kspwallet"), VALID_WALLET).is_ok());
let runtime = tokio::runtime::Builder::new_current_thread().build();
assert!(runtime.is_ok(), "test runtime should be constructible: {runtime:?}");
if let std::result::Result::Ok(runtime) = runtime {
@@ -60,6 +64,14 @@ fn selection_rejects_traversal_and_reinspects_one_valid_locked_wallet() {
if let std::result::Result::Err(error) = rejected_backslash {
assert_eq!(error.code(), crate::ERROR_CODE_WALLET_SELECTION_INVALID);
}
for wallet_id in ["", "/selected.kspwallet", "nested/selected.kspwallet", "selected.kspwallet.bak"] {
let rejected =
runtime.block_on(crate::select_locked_wallet(root.as_path(), crate::WalletSelectionRequestDto { wallet_id: wallet_id.to_owned() }));
assert!(rejected.is_err(), "invalid wallet selection should be rejected: {wallet_id}");
if let std::result::Result::Err(error) = rejected {
assert_eq!(error.code(), crate::ERROR_CODE_WALLET_SELECTION_INVALID);
}
}
let selected =
runtime.block_on(crate::select_locked_wallet(root.as_path(), crate::WalletSelectionRequestDto { wallet_id: "selected.kspwallet".to_owned() }));
assert!(selected.is_ok(), "valid locked Wallet should be selectable: {selected:?}");