From 647b74ebcf789e8df7bf530e83258a3a38286be9 Mon Sep 17 00:00:00 2001 From: edouard Date: Mon, 5 Sep 2022 17:21:59 +0200 Subject: [PATCH] Add unit test for receive panel state --- gui/src/app/state/mod.rs | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gui/src/app/state/mod.rs b/gui/src/app/state/mod.rs index 18dd4242..6e47ea8e 100644 --- a/gui/src/app/state/mod.rs +++ b/gui/src/app/state/mod.rs @@ -106,3 +106,43 @@ impl From for Box { Box::new(s) } } + +#[cfg(test)] +mod tests { + use super::*; + use crate::{ + app::cache::Cache, + daemon::{ + client::{Minisafed, Request}, + model::*, + }, + utils::{ + mock::{fake_daemon_config, Daemon}, + sandbox::Sandbox, + }, + }; + + use bitcoin::Address; + use serde_json::json; + use std::str::FromStr; + + #[tokio::test] + async fn test_receive_panel() { + let addr = + Address::from_str("tb1qkldgvljmjpxrjq2ev5qxe8dvhn0dph9q85pwtfkjeanmwdue2akqj4twxj") + .unwrap(); + let daemon = Daemon::new(vec![( + Some(json!({"method": "getnewaddress", "params": Option::::None})), + Ok(json!(GetAddressResult { + address: addr.clone() + })), + )]); + + let sandbox: Sandbox = Sandbox::new(ReceivePanel::default()); + let client = Arc::new(Minisafed::new(daemon.run(), fake_daemon_config())); + let sandbox = sandbox.load(client, &Cache { blockheight: 0 }).await; + + let panel = sandbox.state(); + assert_eq!(panel.address, Some(addr)); + } +}