From: Steve Myers Date: Wed, 3 Feb 2021 22:12:57 +0000 (-0800) Subject: Add key subcommand tests X-Git-Tag: v0.2.0~18 X-Git-Url: http://internal-gitweb-vhost/script/%22https:/struct.Decoder.html?a=commitdiff_plain;h=a64086e0042b46c3b6864ccc28793c950ae696dd;p=bdk-cli Add key subcommand tests --- diff --git a/src/lib.rs b/src/lib.rs index 4edc80c..8e84031 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -820,10 +820,11 @@ mod test { use super::{CliOpts, WalletOpts}; use crate::OfflineWalletSubCommand::{CreateTx, GetNewAddress}; use crate::OnlineWalletSubCommand::{Broadcast, Sync}; - use crate::{CliSubCommand, WalletSubCommand}; + use crate::{CliSubCommand, WalletSubCommand, KeySubCommand, handle_key_subcommand}; use bdk::bitcoin::{Address, Network, OutPoint}; use std::str::FromStr; use structopt::StructOpt; + use bdk::miniscript::bitcoin::network::constants::Network::Testnet; #[test] fn test_wallet_get_new_address() { @@ -1081,4 +1082,45 @@ mod test { let cli_opts = CliOpts::from_iter_safe(&cli_args); assert!(cli_opts.is_err()); } + + #[test] + fn test_key_generate() { + let network = Testnet; + let key_generate_cmd = KeySubCommand::Generate { + word_count: 12, + password: Some("test123".to_string()) + }; + + let result = handle_key_subcommand(network, key_generate_cmd).unwrap(); + let result_obj = result.as_object().unwrap(); + + let mnemonic = result_obj.get("mnemonic").unwrap().as_str().unwrap(); + let mnemonic:Vec<&str> = mnemonic.split(' ').collect(); + let xprv = result_obj.get("xprv").unwrap().as_str().unwrap(); + let xpub = result_obj.get("xpub").unwrap().as_str().unwrap(); + + assert_eq!(mnemonic.len(), 12); + assert_eq!(&xprv[0..4], "tprv"); + assert_eq!(&xpub[0..4], "tpub"); + } + + #[test] + fn test_key_restore() { + let network = Testnet; + let key_generate_cmd = KeySubCommand::Restore { + mnemonic: "payment battle unit sword token broccoli era violin purse trip blood hire".to_string(), + password: Some("test123".to_string()) + }; + + let result = handle_key_subcommand(network, key_generate_cmd).unwrap(); + let result_obj = result.as_object().unwrap(); + + let fingerprint = result_obj.get("fingerprint").unwrap().as_str().unwrap(); + let xprv = result_obj.get("xprv").unwrap().as_str().unwrap(); + let xpub = result_obj.get("xpub").unwrap().as_str().unwrap(); + + assert_eq!(&fingerprint, &"828af366"); + assert_eq!(&xprv, &"tprv8ZgxMBicQKsPd18TeiFknZKqaZFwpdX9tvvKh8eeHSSPBQi5g9xPHztBg411o78G8XkrhQb6Q1cVvBJ1a9xuFHpmWgvQsvkJkNxBjfGoqhK"); + assert_eq!(&xpub, &"tpubD6NzVbkrYhZ4WUAFYMvMBxyx9amsyxi4UEX6yegwhiEn1txrJYmyUVW3rABPz2emcVT5H8PqBoMmWHmJG8fWi9a4iiGLDquUDtyYDKe9cqk"); + } }