Skip to content

Commit e293cd6

Browse files
committed
test(tree): Add more UI tests
1 parent e2a991c commit e293cd6

File tree

7 files changed

+382
-0
lines changed

7 files changed

+382
-0
lines changed
+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
use cargo_test_support::file;
2+
use cargo_test_support::prelude::*;
3+
use cargo_test_support::project;
4+
use cargo_test_support::registry::Package;
5+
6+
#[cargo_test]
7+
fn case() {
8+
Package::new("a", "1.0.0").dep("b", "1.0").publish();
9+
Package::new("b", "1.0.0").dep("c", "1.0").publish();
10+
Package::new("c", "1.0.0").publish();
11+
12+
let p = project()
13+
.file(
14+
"Cargo.toml",
15+
r#"
16+
[package]
17+
name = "foo"
18+
version = "0.1.0"
19+
20+
[dependencies]
21+
a = "1.0"
22+
b = "1.0"
23+
"#,
24+
)
25+
.file("src/lib.rs", "")
26+
.file("build.rs", "fn main() {}")
27+
.build();
28+
29+
snapbox::cmd::Command::cargo_ui()
30+
.arg("tree")
31+
.current_dir(p.root())
32+
.assert()
33+
.success()
34+
.stdout_eq(file!["stdout.term.svg"])
35+
.stderr_eq(file!["stderr.term.svg"]);
36+
}
Loading
Loading
+100
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
use cargo_test_support::file;
2+
use cargo_test_support::prelude::*;
3+
use cargo_test_support::project;
4+
use cargo_test_support::registry::Package;
5+
6+
#[cargo_test]
7+
fn case() {
8+
Package::new("normal_a", "1.0.0")
9+
.dep("normal_b", "1.0")
10+
.publish();
11+
Package::new("normal_b", "1.0.0")
12+
.dep("normal_c", "1.0")
13+
.build_dep("normal_b_build_a", "1.0.0")
14+
.dev_dep("normal_b_dev_a", "1.0.0")
15+
.publish();
16+
Package::new("normal_c", "1.0.0").publish();
17+
Package::new("normal_b_build_a", "1.0.0")
18+
.dep("normal_b_build_a_normal_a", "1.0.0")
19+
.publish();
20+
Package::new("normal_b_build_a_normal_a", "1.0.0").publish();
21+
Package::new("normal_b_dev_a", "1.0.0")
22+
.dep("normal_b_dev_a_normal_a", "1.0.0")
23+
.publish();
24+
Package::new("normal_b_dev_a_normal_a", "1.0.0").publish();
25+
Package::new("normal_d", "1.0.0").publish();
26+
27+
Package::new("build_a", "1.0.0")
28+
.dep("build_b", "1.0")
29+
.publish();
30+
Package::new("build_b", "1.0.0")
31+
.dep("build_c", "1.0")
32+
.build_dep("build_b_build_a", "1.0.0")
33+
.dev_dep("build_b_dev_a", "1.0.0")
34+
.publish();
35+
Package::new("build_c", "1.0.0").publish();
36+
Package::new("build_b_build_a", "1.0.0")
37+
.dep("build_b_build_a_normal_a", "1.0.0")
38+
.publish();
39+
Package::new("build_b_build_a_normal_a", "1.0.0").publish();
40+
Package::new("build_b_dev_a", "1.0.0")
41+
.dep("build_b_dev_a_normal_a", "1.0.0")
42+
.publish();
43+
Package::new("build_b_dev_a_normal_a", "1.0.0").publish();
44+
Package::new("build_d", "1.0.0").publish();
45+
46+
Package::new("dev_a", "1.0.0").dep("dev_b", "1.0").publish();
47+
Package::new("dev_b", "1.0.0")
48+
.dep("dev_c", "1.0")
49+
.build_dep("dev_b_build_a", "1.0.0")
50+
.dev_dep("dev_b_dev_a", "1.0.0")
51+
.publish();
52+
Package::new("dev_c", "1.0.0").publish();
53+
Package::new("dev_b_build_a", "1.0.0")
54+
.dep("dev_b_build_a_normal_a", "1.0.0")
55+
.publish();
56+
Package::new("dev_b_build_a_normal_a", "1.0.0").publish();
57+
Package::new("dev_b_dev_a", "1.0.0")
58+
.dep("dev_b_dev_a_normal_a", "1.0.0")
59+
.publish();
60+
Package::new("dev_b_dev_a_normal_a", "1.0.0").publish();
61+
Package::new("dev_d", "1.0.0").publish();
62+
63+
let p = project()
64+
.file(
65+
"Cargo.toml",
66+
r#"
67+
[package]
68+
name = "foo"
69+
version = "0.1.0"
70+
71+
[features]
72+
default = ["foo"]
73+
foo = ["dep:normal_a"]
74+
75+
[dependencies]
76+
normal_a = { version = "1.0", optional = true }
77+
normal_d = "1.0"
78+
79+
[build-dependencies]
80+
build_a = "1.0"
81+
build_d = "1.0"
82+
83+
[dev-dependencies]
84+
dev_a = "1.0"
85+
dev_d = "1.0"
86+
"#,
87+
)
88+
.file("src/lib.rs", "")
89+
.file("build.rs", "fn main() {}")
90+
.build();
91+
92+
snapbox::cmd::Command::cargo_ui()
93+
.arg("tree")
94+
.arg("--edges=features")
95+
.current_dir(p.root())
96+
.assert()
97+
.success()
98+
.stdout_eq(file!["stdout.term.svg"])
99+
.stderr_eq(file!["stderr.term.svg"]);
100+
}
Loading
Loading

tests/testsuite/cargo_tree/mod.rs

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
mod deps;
2+
mod dupe;
3+
mod edge_kind;
24
mod features;
35
mod help;

0 commit comments

Comments
 (0)