use super :: *;
use the_module ::tree ::ListNodeReport;
use willbe ::tree ::TreePrinter;
#[ test ]
fn node_with_depth_two_leaves_stop_spacer()
{
let node = ListNodeReport {
name: "node".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![
ListNodeReport {
name: "sub_node1".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![ListNodeReport {
name: "sub_sub_node1".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![],
}],
dev_dependencies: vec![],
build_dependencies: vec![],
},
ListNodeReport {
name: "sub_node2".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![ListNodeReport {
name: "sub_sub_node2".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![],
}],
dev_dependencies: vec![],
build_dependencies: vec![],
},
],
dev_dependencies: vec![],
build_dependencies: vec![],
};
let expected = r"
node
├─ sub_node1
│ └─ sub_sub_node1
└─ sub_node2
└─ sub_sub_node2
"
.trim();
let printer = TreePrinter ::new(&node);
let actual = printer.display_with_spacer("").unwrap();
let actual = actual.trim();
println!("{actual}");
assert_eq!(expected, actual);
}
#[ test ]
fn node_with_depth_two_leaves()
{
let node = ListNodeReport {
name: "node".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![
ListNodeReport {
name: "sub_node1".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![ListNodeReport {
name: "sub_sub_node".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![],
}],
dev_dependencies: vec![],
build_dependencies: vec![],
},
ListNodeReport {
name: "sub_node2".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![],
},
],
dev_dependencies: vec![],
build_dependencies: vec![],
};
let expected = r"
node
├─ sub_node1
│ └─ sub_sub_node
└─ sub_node2
"
.trim();
let printer = TreePrinter ::new(&node);
let actual = printer.display_with_spacer("").unwrap();
let actual = actual.trim();
println!("{actual}");
assert_eq!(expected, actual);
}
#[ test ]
fn node_with_depth_one_leaf()
{
let node = ListNodeReport {
name: "node".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![ListNodeReport {
name: "sub_node".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![ListNodeReport {
name: "sub_sub_node".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![],
}],
dev_dependencies: vec![],
build_dependencies: vec![],
}],
dev_dependencies: vec![],
build_dependencies: vec![],
};
let expected = r"
node
└─ sub_node
└─ sub_sub_node
"
.trim();
let printer = TreePrinter ::new(&node);
let actual = printer.display_with_spacer("").unwrap();
let actual = actual.trim();
println!("{actual}");
assert_eq!(expected, actual);
}
#[ test ]
fn node_with_build_dependencies_tree_with_two_leaves()
{
let node = ListNodeReport {
name: "node".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![
ListNodeReport {
name: "build_sub_node1".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![],
},
ListNodeReport {
name: "build_sub_node2".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![],
},
],
};
let expected = r"
node
[build-dependencies]
├─ build_sub_node1
└─ build_sub_node2
"
.trim();
let printer = TreePrinter ::new(&node);
let actual = printer.display_with_spacer("").unwrap();
let actual = actual.trim();
println!("{actual}");
assert_eq!(expected, actual);
}
#[ test ]
fn node_with_build_dependencies_tree_with_one_leaf()
{
let node = ListNodeReport {
name: "node".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![ListNodeReport {
name: "build_sub_node".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![],
}],
};
let expected = r"
node
[build-dependencies]
└─ build_sub_node
"
.trim();
let printer = TreePrinter ::new(&node);
let actual = printer.display_with_spacer("").unwrap();
let actual = actual.trim();
println!("{actual}");
assert_eq!(expected, actual);
}
#[ test ]
fn node_with_dev_dependencies_tree_with_two_leaves()
{
let node = ListNodeReport {
name: "node".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![
ListNodeReport {
name: "dev_sub_node1".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![],
},
ListNodeReport {
name: "dev_sub_node2".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![],
},
],
build_dependencies: vec![],
};
let expected = r"
node
[dev-dependencies]
├─ dev_sub_node1
└─ dev_sub_node2
"
.trim();
let printer = TreePrinter ::new(&node);
let actual = printer.display_with_spacer("").unwrap();
let actual = actual.trim();
println!("{actual}");
assert_eq!(expected, actual);
}
#[ test ]
fn node_with_dev_dependencies_tree_with_one_leaf()
{
let node = ListNodeReport {
name: "node".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![ListNodeReport {
name: "dev_sub_node".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![],
}],
build_dependencies: vec![],
};
let expected = r"
node
[dev-dependencies]
└─ dev_sub_node
"
.trim();
let printer = TreePrinter ::new(&node);
let actual = printer.display_with_spacer("").unwrap();
let actual = actual.trim();
println!("{actual}");
assert_eq!(expected, actual);
}
#[ test ]
fn node_with_dependencies_tree_with_two_leaves()
{
let node = ListNodeReport {
name: "node".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![
ListNodeReport {
name: "sub_node1".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![],
},
ListNodeReport {
name: "sub_node2".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![],
},
],
dev_dependencies: vec![],
build_dependencies: vec![],
};
let expected = r"
node
├─ sub_node1
└─ sub_node2
"
.trim();
let printer = TreePrinter ::new(&node);
let actual = printer.display_with_spacer("").unwrap();
let actual = actual.trim();
println!("{actual}");
assert_eq!(expected, actual);
}
#[ test ]
fn node_with_dependency_tree_with_one_leaf()
{
let node = ListNodeReport {
name: "node".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![ListNodeReport {
name: "sub_node".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![],
}],
dev_dependencies: vec![],
build_dependencies: vec![],
};
let expected = r"
node
└─ sub_node
"
.trim();
let printer = TreePrinter ::new(&node);
let actual = printer.display_with_spacer("").unwrap();
let actual = actual.trim();
println!("{actual}");
assert_eq!(expected, actual);
}
#[ test ]
fn one_node_one_line()
{
let node = ListNodeReport {
name: "node".into(),
version: None,
crate_dir: None,
duplicate: false,
normal_dependencies: vec![],
dev_dependencies: vec![],
build_dependencies: vec![],
};
let expected = "node\n";
let printer = TreePrinter ::new(&node);
let actual = printer.display_with_spacer("").unwrap();
println!("{actual}");
assert_eq!(expected, actual);
}