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