1
use super::*;
2

            
3
#[test]
4
1
fn an_existing_tree_is_removed() {
5
1
    let dir = tempfile::tempdir().unwrap();
6
1
    let tree = dir.path().join("coverage");
7
1
    std::fs::create_dir_all(tree.join("nested")).unwrap();
8
1
    std::fs::write(tree.join("nested/index.html"), "stale").unwrap();
9

            
10
1
    remove_dir_if_present(&tree).unwrap();
11
1
    assert!(!tree.exists());
12
1
}
13

            
14
#[test]
15
1
fn a_missing_tree_is_not_an_error() {
16
1
    let dir = tempfile::tempdir().unwrap();
17
1
    remove_dir_if_present(&dir.path().join("absent")).unwrap();
18
1
}
19

            
20
#[test]
21
1
fn a_tree_that_cannot_be_removed_is_an_error() {
22
1
    let dir = tempfile::tempdir().unwrap();
23
1
    let file = dir.path().join("not-a-dir");
24
1
    std::fs::write(&file, "x").unwrap();
25
1
    assert!(remove_dir_if_present(&file).is_err());
26
1
}
27

            
28
#[test]
29
1
fn an_existing_file_is_removed() {
30
1
    let dir = tempfile::tempdir().unwrap();
31
1
    let file = dir.path().join("disdoc.html");
32
1
    std::fs::write(&file, "stale").unwrap();
33

            
34
1
    remove_file_if_present(&file).unwrap();
35
1
    assert!(!file.exists());
36
1
}
37

            
38
#[test]
39
1
fn a_missing_file_is_not_an_error() {
40
1
    let dir = tempfile::tempdir().unwrap();
41
1
    remove_file_if_present(&dir.path().join("absent.html")).unwrap();
42
1
}
43

            
44
#[test]
45
1
fn a_file_that_cannot_be_removed_is_an_error() {
46
1
    let dir = tempfile::tempdir().unwrap();
47
1
    assert!(remove_file_if_present(dir.path()).is_err());
48
1
}
49

            
50
#[test]
51
1
fn only_not_found_is_ignored() {
52
1
    assert!(ignore_not_found(Err(io::Error::from(ErrorKind::NotFound))).is_ok());
53
1
    assert!(ignore_not_found(Err(io::Error::from(ErrorKind::PermissionDenied))).is_err());
54
1
    assert!(ignore_not_found(Ok(())).is_ok());
55
1
}