use tokio::fs; use testdir::testdir; use crate::fs_utils; #[tokio::test] async fn test_fs_utils_create_dir_allow_existing() { let dir = testdir!(); let foo = dir.join("foo"); assert!(fs_utils::create_dir_allow_existing(&foo).await.is_ok()); assert!(fs::try_exists(&foo).await.unwrap()); assert!(fs_utils::create_dir_allow_existing(&foo).await.is_ok()); } #[tokio::test] async fn test_fs_utils_create_dir_allow_existing_file() { let dir = testdir!(); let foo = dir.join("foo"); assert!(fs::write(&foo, "hello").await.is_ok()); assert!(fs_utils::create_dir_allow_existing(&foo).await.is_err()); } #[tokio::test] async fn test_fs_utils_remove_file_allow_not_found() { let dir = testdir!(); let foo = dir.join("foo"); assert!(fs_utils::remove_file_allow_not_found(&foo).await.is_ok()); assert!(fs::write(&foo, "hello").await.is_ok()); assert!(fs_utils::remove_file_allow_not_found(&foo).await.is_ok()); assert!(!fs::try_exists(&foo).await.unwrap()); } #[tokio::test] async fn test_fs_utils_symlink_update_existing() { let dir = testdir!(); let foo = dir.join("foo"); let bar = dir.join("bar"); let fum = dir.join("fum"); assert!(fs::write(&foo, "hello").await.is_ok()); assert!(fs_utils::symlink_update_existing(&foo, &bar).await.is_ok()); assert!(fs_utils::symlink_update_existing(&foo, &bar).await.is_ok()); assert_eq!(fs::read_link(&bar).await.unwrap(), foo); assert!(fs_utils::symlink_update_existing(&fum, &bar).await.is_ok()); assert_eq!(fs::read_link(&bar).await.unwrap(), fum); }