v0.2.6-pre.016
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-wallet-lib/unit_tests/transfer.rs
|
||||
// version: 3
|
||||
// version: 4
|
||||
|
||||
#[cfg(unix)]
|
||||
use std::os::unix::fs::PermissionsExt; // rust-rules: trait-import
|
||||
@@ -144,6 +144,41 @@ fn cli_json_import_creates_new_no_clobber_wallet_with_imported_identity_and_meta
|
||||
source.zeroize();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn default_transfer_import_creates_v2_without_removing_explicit_v1_import() {
|
||||
let directory = tempfile::tempdir().expect("Wallet transfer test directory must be creatable");
|
||||
let default_destination = directory.path().join("default-v2.kspwallet");
|
||||
let explicit_v1_destination = directory.path().join("explicit-v1.kspwallet");
|
||||
let keypair = test_keypair();
|
||||
let mut source = cli_json(&keypair);
|
||||
let runtime = runtime();
|
||||
let default_owner = runtime
|
||||
.block_on(crate::import_wallet_transfer(
|
||||
default_destination.as_path(),
|
||||
source.as_slice(),
|
||||
crate::WalletTransferFormat::SolanaCliJson,
|
||||
crate::OwnerPassword::new(std::string::String::from("pre016-default-import-owner")),
|
||||
std::option::Option::None,
|
||||
crate::WalletCreateMetadata::default(),
|
||||
))
|
||||
.expect("default transfer import must succeed");
|
||||
assert_eq!(default_owner.format_version(), crate::KSPWALLET_FORMAT_VERSION_V2);
|
||||
let default_bytes = std::fs::read(default_destination).expect("default imported Wallet must be readable");
|
||||
assert_eq!(crate::detect_wallet_format(default_bytes.as_slice()).expect("default imported Wallet must detect"), crate::WalletFormat::V2);
|
||||
let explicit_owner = runtime
|
||||
.block_on(crate::import_wallet_transfer_v1(
|
||||
explicit_v1_destination.as_path(),
|
||||
source.as_slice(),
|
||||
crate::WalletTransferFormat::SolanaCliJson,
|
||||
crate::OwnerPassword::new(std::string::String::from("pre016-explicit-v1-import-owner")),
|
||||
std::option::Option::None,
|
||||
crate::WalletCreateMetadataV1::default(),
|
||||
))
|
||||
.expect("explicit V1 transfer import must remain available");
|
||||
assert_eq!(explicit_owner.format_version(), crate::KSPWALLET_FORMAT_VERSION_V1);
|
||||
source.zeroize();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn transfer_file_import_is_non_destructive_and_bounded() {
|
||||
let directory = tempfile::tempdir().expect("Wallet transfer test directory must be creatable");
|
||||
|
||||
Reference in New Issue
Block a user