summaryrefslogtreecommitdiff
path: root/crates/env/env_test
diff options
context:
space:
mode:
Diffstat (limited to 'crates/env/env_test')
-rw-r--r--crates/env/env_test/src/lib.rs3
-rw-r--r--crates/env/env_test/src/test_vault_setup_and_member_register.rs8
-rw-r--r--crates/env/env_test/src/test_virtual_file_creation_and_update.rs64
3 files changed, 58 insertions, 17 deletions
diff --git a/crates/env/env_test/src/lib.rs b/crates/env/env_test/src/lib.rs
index 7c9fbcb..9ea3ecc 100644
--- a/crates/env/env_test/src/lib.rs
+++ b/crates/env/env_test/src/lib.rs
@@ -11,7 +11,7 @@ pub mod test_vault_setup_and_member_register;
#[cfg(test)]
pub mod test_virtual_file_creation_and_update;
-pub async fn get_and_correct_test_dir(area: &str) -> Result<PathBuf, std::io::Error> {
+pub async fn get_test_dir(area: &str) -> Result<PathBuf, std::io::Error> {
let dir = current_dir()?.join(".temp").join("test").join(area);
if !dir.exists() {
std::fs::create_dir_all(&dir)?;
@@ -20,6 +20,5 @@ pub async fn get_and_correct_test_dir(area: &str) -> Result<PathBuf, std::io::Er
fs::remove_dir_all(&dir).await?;
fs::create_dir_all(&dir).await?;
}
- set_current_dir(dir.clone())?;
Ok(dir)
}
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
index 0b4800f..bea9342 100644
--- 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
@@ -12,11 +12,11 @@ use env::{
},
};
-use crate::get_and_correct_test_dir;
+use crate::get_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?;
+ let dir = get_test_dir("member_register").await?;
// Setup vault
Vault::setup_vault(dir.clone()).await?;
@@ -35,8 +35,8 @@ async fn test_vault_setup_and_member_register() -> Result<(), std::io::Error> {
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 {
+ let config = VaultConfig::read_from(dir.join(SERVER_FILE_VAULT)).await?;
+ let Some(vault) = Vault::init(config, &dir) else {
return Err(Error::new(std::io::ErrorKind::NotFound, "Vault not found!"));
};
diff --git a/crates/env/env_test/src/test_virtual_file_creation_and_update.rs b/crates/env/env_test/src/test_virtual_file_creation_and_update.rs
index 4d22a23..efc06c9 100644
--- a/crates/env/env_test/src/test_virtual_file_creation_and_update.rs
+++ b/crates/env/env_test/src/test_virtual_file_creation_and_update.rs
@@ -1,9 +1,12 @@
use std::time::Duration;
use cfg_file::config::ConfigFile;
-use env::workspace::{
- member::Member,
- vault::{Vault, config::VaultConfig, vitrual_file::VirtualFileVersionDesciption},
+use env::{
+ constants::SERVER_FILE_VAULT,
+ workspace::{
+ member::Member,
+ vault::{Vault, config::VaultConfig, vitrual_file::VirtualFileVersionDesciption},
+ },
};
use tcp_connection::{
handle::{ClientHandle, ServerHandle},
@@ -15,25 +18,50 @@ use tokio::{
time::{sleep, timeout},
};
-use crate::get_and_correct_test_dir;
+use crate::get_test_dir;
struct VirtualFileCreateClientHandle;
struct VirtualFileCreateServerHandle;
impl ClientHandle<VirtualFileCreateServerHandle> for VirtualFileCreateClientHandle {
fn process(
- instance: tcp_connection::instance::ConnectionInstance,
- ) -> impl Future<Output = ()> + Send + Sync {
- async move {}
+ mut instance: tcp_connection::instance::ConnectionInstance,
+ ) -> impl Future<Output = ()> + Send {
+ async move {
+ let dir = get_test_dir("virtual_file_creation_and_update_2")
+ .await
+ .unwrap();
+ // Create first test file for virtual file creation
+ let test_content_1 = b"Test file content for virtual file creation";
+ let temp_file_path_1 = dir.join("test_virtual_file_1.txt");
+
+ tokio::fs::write(&temp_file_path_1, test_content_1)
+ .await
+ .unwrap();
+
+ // Send the first file to server for virtual file creation
+ instance.write_file(&temp_file_path_1).await.unwrap();
+
+ // Create second test file for virtual file update
+ let test_content_2 = b"Updated test file content for virtual file";
+ let temp_file_path_2 = dir.join("test_virtual_file_2.txt");
+
+ tokio::fs::write(&temp_file_path_2, test_content_2)
+ .await
+ .unwrap();
+
+ // Send the second file to server for virtual file update
+ instance.write_file(&temp_file_path_2).await.unwrap();
+ }
}
}
impl ServerHandle<VirtualFileCreateClientHandle> for VirtualFileCreateServerHandle {
fn process(
mut instance: tcp_connection::instance::ConnectionInstance,
- ) -> impl Future<Output = ()> + Send + Sync {
+ ) -> impl Future<Output = ()> + Send {
async move {
- let dir = get_and_correct_test_dir("virtual_file_creation_and_update")
+ let dir = get_test_dir("virtual_file_creation_and_update")
.await
.unwrap();
@@ -41,13 +69,21 @@ impl ServerHandle<VirtualFileCreateClientHandle> for VirtualFileCreateServerHand
Vault::setup_vault(dir.clone()).await.unwrap();
// Read vault
- let Some(vault) = Vault::init_current_dir(VaultConfig::read().await.unwrap()) else {
+ let Some(vault) = Vault::init(
+ VaultConfig::read_from(dir.join(SERVER_FILE_VAULT))
+ .await
+ .unwrap(),
+ &dir,
+ ) else {
panic!("No vault found!");
};
// Register member
let member_id = "test_member";
- vault.register_member_to_vault(Member::new(member_id)).await;
+ vault
+ .register_member_to_vault(Member::new(member_id))
+ .await
+ .unwrap();
// Create visual file
let virtual_file_id = vault
@@ -55,6 +91,12 @@ impl ServerHandle<VirtualFileCreateClientHandle> for VirtualFileCreateServerHand
.await
.unwrap();
+ // Grant edit right to member
+ vault
+ .grant_virtual_file_edit_right(member_id.to_string(), virtual_file_id.clone())
+ .await
+ .unwrap();
+
// Update visual file
vault
.update_virtual_file_from_connection(