summaryrefslogtreecommitdiff
path: root/crates/env/env_test/src
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2025-09-22 18:40:19 +0800
committer魏曹先生 <1992414357@qq.com>2025-09-22 18:40:19 +0800
commitfe73def25241c0fe3b946bef80064431ff7ff9cd (patch)
tree04fe19d666c12a2317f401e5e855c1b8afd38462 /crates/env/env_test/src
parentd074bc445ce574c70ca035fa7677664a2483ef21 (diff)
Add test `test_vault_setup_and_member_register`
Diffstat (limited to 'crates/env/env_test/src')
-rw-r--r--crates/env/env_test/src/test_vault_setup_and_member_register.rs69
1 files changed, 69 insertions, 0 deletions
diff --git a/crates/env/env_test/src/test_vault_setup_and_member_register.rs b/crates/env/env_test/src/test_vault_setup_and_member_register.rs
new file mode 100644
index 0000000..0b4800f
--- /dev/null
+++ b/crates/env/env_test/src/test_vault_setup_and_member_register.rs
@@ -0,0 +1,69 @@
+use std::io::Error;
+
+use cfg_file::config::ConfigFile;
+use env::{
+ constants::{
+ SERVER_FILE_MEMBER_INFO, SERVER_FILE_README, SERVER_FILE_VAULT, SERVER_PATH_MEMBER_PUB,
+ SERVER_PATH_MEMBERS, SERVER_PATH_SHEETS, SERVER_PATH_VIRTUAL_FILE_ROOT,
+ },
+ workspace::{
+ member::Member,
+ vault::{Vault, config::VaultConfig},
+ },
+};
+
+use crate::get_and_correct_test_dir;
+
+#[tokio::test]
+async fn test_vault_setup_and_member_register() -> Result<(), std::io::Error> {
+ let dir = get_and_correct_test_dir("member_register").await?;
+
+ // Setup vault
+ Vault::setup_vault(dir.clone()).await?;
+
+ // Check if the following files and directories are created in `dir`:
+ // Files: SERVER_FILE_VAULT, SERVER_FILE_README
+ // Directories: SERVER_PATH_SHEETS,
+ // SERVER_PATH_MEMBERS,
+ // SERVER_PATH_MEMBER_PUB,
+ // SERVER_PATH_VIRTUAL_FILE_ROOT
+ assert!(dir.join(SERVER_FILE_VAULT).exists());
+ assert!(dir.join(SERVER_FILE_README).exists());
+ assert!(dir.join(SERVER_PATH_SHEETS).exists());
+ assert!(dir.join(SERVER_PATH_MEMBERS).exists());
+ assert!(dir.join(SERVER_PATH_MEMBER_PUB).exists());
+ assert!(dir.join(SERVER_PATH_VIRTUAL_FILE_ROOT).exists());
+
+ // Get vault
+ let config = VaultConfig::read().await?;
+ let Some(vault) = Vault::init_current_dir(config) else {
+ return Err(Error::new(std::io::ErrorKind::NotFound, "Vault not found!"));
+ };
+
+ // Add member
+ let member_id = "test_member";
+ vault
+ .register_member_to_vault(Member::new(member_id))
+ .await?;
+
+ const ID_PARAM: &str = "{member_id}";
+
+ // Check if the member info file exists
+ assert_eq!(
+ dir.join(SERVER_FILE_MEMBER_INFO.replace(ID_PARAM, member_id))
+ .exists(),
+ true
+ );
+
+ // Remove member
+ vault.remove_member_from_vault(member_id.to_string())?;
+
+ // Check if the member info file not exists
+ assert_eq!(
+ dir.join(SERVER_FILE_MEMBER_INFO.replace(ID_PARAM, member_id))
+ .exists(),
+ false
+ );
+
+ Ok(())
+}