use signer_core::{SignerFsStore, SignerUser, SignerUserPublic};
use crate::{SignerDaemon, model::viewobject::UserVO};
fn create_test_signer_user() -> SignerUser {
SignerUser {
prv_key: format!("y2uE8WoJYpA32KdwPDGaqr7vjzuylVc9yvmirXNwEYI="),
public: SignerUserPublic {
pub_key: format!("lOXR0P3DMq3v_k7lOiKYYR9LqfvRdWG4MVIVolWjtU0="),
username: format!("alice"),
update_time: 0,
allow_endpoints: vec![],
},
}
}
#[tokio::test]
async fn test_push_crdt_event() -> anyhow::Result<()> {
let signer = create_test_signer_user();
let daemon = SignerDaemon::from_memory(&signer, "test").await?;
daemon
.put_user(UserVO::from_signer_user(signer).await?)
.await?;
daemon.crdt_push("http://localhost:8080/api/signer").await?;
Ok(())
}
#[tokio::test]
async fn test_pull_crdt_event() -> anyhow::Result<()> {
let signer = create_test_signer_user();
let sfs = SignerFsStore::new("./testdir".to_string());
sfs.save_signer_user(&signer)?;
let daemon = SignerDaemon::from_sfs(&signer, &sfs).await?;
daemon.crdt_pull("http://localhost:8080/api/signer").await?;
let ul = daemon.list_user().await?;
assert!(ul.len() > 0);
Ok(())
}