summaryrefslogtreecommitdiff
path: root/server/common/src/tests.rs
blob: 540ee2d5a6405fcb3f51f2004385c567f8714016 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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);
}