mirror of
https://github.com/danbulant/Portfolio
synced 2026-05-27 05:51:56 +00:00
refactor: refactor write tests
This commit is contained in:
parent
b9f842f258
commit
ee12ad3925
1 changed files with 36 additions and 27 deletions
|
|
@ -354,6 +354,9 @@ mod tests {
|
||||||
use crate::candidate_details::ApplicationDetails;
|
use crate::candidate_details::ApplicationDetails;
|
||||||
use crate::services::application_service::ApplicationService;
|
use crate::services::application_service::ApplicationService;
|
||||||
|
|
||||||
|
use std::path::{PathBuf};
|
||||||
|
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_application_id_validation() {
|
async fn test_application_id_validation() {
|
||||||
assert!(CandidateService::is_application_id_valid(101_101));
|
assert!(CandidateService::is_application_id_valid(101_101));
|
||||||
|
|
@ -459,6 +462,27 @@ mod tests {
|
||||||
assert_eq!(dec_details.parent_surname, "test");
|
assert_eq!(dec_details.parent_surname, "test");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
async fn create_data_store_temp_dir(application_id: i32) -> (PathBuf, PathBuf, PathBuf) {
|
||||||
|
|
||||||
|
let random_number: u32 = rand::Rng::gen(&mut rand::thread_rng());
|
||||||
|
|
||||||
|
let temp_dir = std::env::temp_dir().join("portfolio_test_tempdir").join(random_number.to_string());
|
||||||
|
let application_dir = temp_dir.join(application_id.to_string());
|
||||||
|
let application_cache_dir = application_dir.join("cache");
|
||||||
|
|
||||||
|
tokio::fs::create_dir_all(application_cache_dir.clone()).await.unwrap();
|
||||||
|
|
||||||
|
std::env::set_var("STORE_PATH", temp_dir.to_str().unwrap());
|
||||||
|
|
||||||
|
(temp_dir, application_dir, application_cache_dir)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
async fn clear_data_store_temp_dir(temp_dir: PathBuf) {
|
||||||
|
tokio::fs::remove_dir_all(temp_dir).await.unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_folder_creation() {
|
async fn test_folder_creation() {
|
||||||
let db = get_memory_sqlite_connection().await;
|
let db = get_memory_sqlite_connection().await;
|
||||||
|
|
@ -497,52 +521,37 @@ mod tests {
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_add_cover_letter_to_cache() {
|
async fn test_add_cover_letter_to_cache() {
|
||||||
let temp_dir = std::env::temp_dir().join("portfolio_test_tempdir");
|
const APPLICATION_ID: i32 = 103151;
|
||||||
std::env::set_var("STORE_PATH", temp_dir.to_str().unwrap());
|
let (temp_dir, _, application_cache_dir) = create_data_store_temp_dir(APPLICATION_ID).await;
|
||||||
|
|
||||||
tokio::fs::create_dir_all(temp_dir.join("103151").join("cache"))
|
|
||||||
.await
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
|
|
||||||
CandidateService::add_cover_letter_to_cache(103151, vec![0]).await.unwrap();
|
CandidateService::add_cover_letter_to_cache(103151, vec![0]).await.unwrap();
|
||||||
|
|
||||||
assert!(tokio::fs::metadata(temp_dir.join("103151").join("cache").join("MOTIVACNI_DOPIS.pdf")).await.is_ok());
|
assert!(tokio::fs::metadata(application_cache_dir.join("MOTIVACNI_DOPIS.pdf")).await.is_ok());
|
||||||
|
|
||||||
tokio::fs::remove_dir_all(temp_dir).await.unwrap();
|
clear_data_store_temp_dir(temp_dir).await;
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_add_portfolio_letter_to_cache() {
|
async fn test_add_portfolio_letter_to_cache() {
|
||||||
let temp_dir = std::env::temp_dir().join("portfolio_test_tempdir");
|
const APPLICATION_ID: i32 = 103151;
|
||||||
std::env::set_var("STORE_PATH", temp_dir.to_str().unwrap());
|
let (temp_dir, _, application_cache_dir) = create_data_store_temp_dir(APPLICATION_ID).await;
|
||||||
|
|
||||||
tokio::fs::create_dir_all(temp_dir.join("103151").join("cache"))
|
|
||||||
.await
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
|
|
||||||
CandidateService::add_portfolio_letter_to_cache(103151, vec![0]).await.unwrap();
|
CandidateService::add_portfolio_letter_to_cache(103151, vec![0]).await.unwrap();
|
||||||
|
|
||||||
assert!(tokio::fs::metadata(temp_dir.join("103151").join("cache").join("PORTFOLIO.pdf")).await.is_ok());
|
assert!(tokio::fs::metadata(application_cache_dir.join("PORTFOLIO.pdf")).await.is_ok());
|
||||||
|
|
||||||
tokio::fs::remove_dir_all(temp_dir).await.unwrap();
|
clear_data_store_temp_dir(temp_dir).await;
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_add_portfolio_zip_to_cache() {
|
async fn test_add_portfolio_zip_to_cache() {
|
||||||
let temp_dir = std::env::temp_dir().join("portfolio_test_tempdir");
|
const APPLICATION_ID: i32 = 103151;
|
||||||
std::env::set_var("STORE_PATH", temp_dir.to_str().unwrap());
|
let (temp_dir, _, application_cache_dir) = create_data_store_temp_dir(APPLICATION_ID).await;
|
||||||
|
|
||||||
tokio::fs::create_dir_all(temp_dir.join("103151").join("cache"))
|
|
||||||
.await
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
|
|
||||||
CandidateService::add_portfolio_zip_to_cache(103151, vec![0]).await.unwrap();
|
CandidateService::add_portfolio_zip_to_cache(103151, vec![0]).await.unwrap();
|
||||||
|
|
||||||
assert!(tokio::fs::metadata(temp_dir.join("103151").join("cache").join("PORTFOLIO.zip")).await.is_ok());
|
assert!(tokio::fs::metadata(application_cache_dir.join("PORTFOLIO.zip")).await.is_ok());
|
||||||
|
|
||||||
tokio::fs::remove_dir_all(temp_dir).await.unwrap();
|
clear_data_store_temp_dir(temp_dir).await;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue