1 use assert_cmd::Command;
2
pastel() -> Command3 fn pastel() -> Command {
4 let mut cmd = Command::cargo_bin("pastel").unwrap();
5 cmd.env_remove("PASTEL_COLOR_MODE");
6 cmd
7 }
8
9 #[test]
color_reads_colors_from_args()10 fn color_reads_colors_from_args() {
11 pastel()
12 .arg("color")
13 .arg("red")
14 .assert()
15 .success()
16 .stdout("hsl(0,100.0%,50.0%)\n");
17
18 pastel()
19 .arg("color")
20 .arg("red")
21 .arg("blue")
22 .assert()
23 .success()
24 .stdout("hsl(0,100.0%,50.0%)\nhsl(240,100.0%,50.0%)\n");
25
26 pastel().arg("color").arg("no color").assert().failure();
27 }
28
29 #[test]
color_reads_colors_from_stdin()30 fn color_reads_colors_from_stdin() {
31 pastel()
32 .arg("color")
33 .write_stdin("red\nblue\n")
34 .assert()
35 .success()
36 .stdout("hsl(0,100.0%,50.0%)\nhsl(240,100.0%,50.0%)\n");
37
38 pastel()
39 .arg("color")
40 .write_stdin("no color")
41 .assert()
42 .failure();
43 }
44
45 #[test]
format_basic()46 fn format_basic() {
47 pastel()
48 .arg("format")
49 .arg("hex")
50 .arg("red")
51 .assert()
52 .success()
53 .stdout("#ff0000\n");
54
55 pastel()
56 .arg("format")
57 .arg("rgb")
58 .arg("red")
59 .arg("blue")
60 .assert()
61 .success()
62 .stdout("rgb(255, 0, 0)\nrgb(0, 0, 255)\n");
63 }
64
65 #[test]
pipe_into_format_command()66 fn pipe_into_format_command() {
67 let first = pastel()
68 .arg("color")
69 .arg("red")
70 .arg("teal")
71 .arg("hotpink")
72 .assert()
73 .success();
74
75 pastel()
76 .arg("format")
77 .arg("name")
78 .write_stdin(String::from_utf8(first.get_output().stdout.clone()).unwrap())
79 .assert()
80 .success()
81 .stdout("red\nteal\nhotpink\n");
82 }
83
84 #[test]
sort_by_basic()85 fn sort_by_basic() {
86 pastel()
87 .arg("sort-by")
88 .arg("luminance")
89 .arg("gray")
90 .arg("white")
91 .arg("black")
92 .assert()
93 .success()
94 .stdout("hsl(0,0.0%,0.0%)\nhsl(0,0.0%,50.2%)\nhsl(0,0.0%,100.0%)\n");
95 }
96
97 #[test]
set_basic()98 fn set_basic() {
99 pastel()
100 .arg("set")
101 .arg("hsl-hue")
102 .arg("120")
103 .arg("red")
104 .assert()
105 .success()
106 .stdout("hsl(120,100.0%,50.0%)\n");
107
108 pastel()
109 .arg("set")
110 .arg("hsl-saturation")
111 .arg("0.1")
112 .arg("red")
113 .assert()
114 .success()
115 .stdout("hsl(0,10.0%,50.0%)\n");
116
117 pastel()
118 .arg("set")
119 .arg("hsl-lightness")
120 .arg("0.5")
121 .arg("white")
122 .assert()
123 .success()
124 .stdout("hsl(0,0.0%,50.0%)\n");
125 }
126