From 514c4bc8a7acd896ae9aa936773af3be436b0f84 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Fri, 18 Jun 2021 16:36:13 +0200 Subject: [PATCH] test removing the last, seletected account this just result again in no accounts. before, get_selected_account() has paniced. --- src/accounts.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/accounts.rs b/src/accounts.rs index 679e6ff65..7e9ebc1c3 100644 --- a/src/accounts.rs +++ b/src/accounts.rs @@ -478,6 +478,27 @@ mod tests { assert_eq!(accounts.accounts.read().await.len(), 1); } + #[async_std::test] + async fn test_accounts_remove_last() -> Result<()> { + let dir = tempfile::tempdir()?; + let p: PathBuf = dir.path().join("accounts").into(); + + let accounts = Accounts::new("my_os".into(), p.clone()).await?; + assert!(accounts.get_selected_account().await.is_none()); + assert_eq!(accounts.config.get_selected_account().await, 0); + + let id = accounts.add_account().await?; + assert!(accounts.get_selected_account().await.is_some()); + assert_eq!(id, 1); + assert_eq!(accounts.accounts.read().await.len(), 1); + assert_eq!(accounts.config.get_selected_account().await, id); + + accounts.remove_account(id).await?; + assert!(accounts.get_selected_account().await.is_none()); + + Ok(()) + } + #[async_std::test] async fn test_migrate_account() { let dir = tempfile::tempdir().unwrap();