test: add config tests, update arg tests
This commit is contained in:
parent
a6b48921ee
commit
f4c6cb95e4
|
@ -136,7 +136,7 @@ fn test_invalid_default_widget_1() -> Result<(), Box<dyn std::error::Error>> {
|
|||
.arg("fake_widget")
|
||||
.assert()
|
||||
.failure()
|
||||
.stderr(predicate::str::contains("Invalid widget type"));
|
||||
.stderr(predicate::str::contains("invalid widget type"));
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
@ -1 +1,136 @@
|
|||
use assert_cmd::prelude::*;
|
||||
use predicates::prelude::*;
|
||||
use std::process::Command;
|
||||
|
||||
// These tests are for testing some config file-specific options.
|
||||
|
||||
fn get_binary_location() -> String {
|
||||
env!("CARGO_BIN_EXE_btm").to_string()
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_toml_mismatch_type() -> Result<(), Box<dyn std::error::Error>> {
|
||||
Command::new(get_binary_location())
|
||||
.arg("-C")
|
||||
.arg("./tests/invalid_configs/toml_mismatch_type.toml")
|
||||
.assert()
|
||||
.failure()
|
||||
.stderr(predicate::str::contains("invalid type"));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_empty_layout() -> Result<(), Box<dyn std::error::Error>> {
|
||||
Command::new(get_binary_location())
|
||||
.arg("-C")
|
||||
.arg("./tests/invalid_configs/empty_layout.toml")
|
||||
.assert()
|
||||
.failure()
|
||||
.stderr(predicate::str::contains("invalid layout config"));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_invalid_layout_widget_type() -> Result<(), Box<dyn std::error::Error>> {
|
||||
Command::new(get_binary_location())
|
||||
.arg("-C")
|
||||
.arg("./tests/invalid_configs/invalid_layout_widget_type.toml")
|
||||
.assert()
|
||||
.failure()
|
||||
.stderr(predicate::str::contains("invalid widget type"));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// This test isn't really needed as this is technically covered by TOML spec.
|
||||
/// However, I feel like it's worth checking anyways - not like it takes long.
|
||||
#[test]
|
||||
fn test_duplicate_temp_type() -> Result<(), Box<dyn std::error::Error>> {
|
||||
Command::new(get_binary_location())
|
||||
.arg("-C")
|
||||
.arg("./tests/invalid_configs/duplicate_temp_type.toml")
|
||||
.assert()
|
||||
.failure()
|
||||
.stderr(predicate::str::contains("duplicate field"));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Checks for if a hex is valid
|
||||
#[test]
|
||||
fn test_invalid_colour_hex() -> Result<(), Box<dyn std::error::Error>> {
|
||||
Command::new(get_binary_location())
|
||||
.arg("-C")
|
||||
.arg("./tests/invalid_configs/invalid_colour_hex.toml")
|
||||
.assert()
|
||||
.failure()
|
||||
.stderr(predicate::str::contains("invalid color hex"));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Checks for if a hex is too long
|
||||
#[test]
|
||||
fn test_invalid_colour_hex_2() -> Result<(), Box<dyn std::error::Error>> {
|
||||
Command::new(get_binary_location())
|
||||
.arg("-C")
|
||||
.arg("./tests/invalid_configs/invalid_colour_hex_2.toml")
|
||||
.assert()
|
||||
.failure()
|
||||
.stderr(predicate::str::contains("invalid color hex"));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Checks unicode hex because the way we originally did it could cause char
|
||||
/// boundary errors!
|
||||
#[test]
|
||||
fn test_invalid_colour_hex_3() -> Result<(), Box<dyn std::error::Error>> {
|
||||
Command::new(get_binary_location())
|
||||
.arg("-C")
|
||||
.arg("./tests/invalid_configs/invalid_colour_hex_3.toml")
|
||||
.assert()
|
||||
.failure()
|
||||
.stderr(predicate::str::contains("invalid color hex"));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_invalid_colour_name() -> Result<(), Box<dyn std::error::Error>> {
|
||||
Command::new(get_binary_location())
|
||||
.arg("-C")
|
||||
.arg("./tests/invalid_configs/invalid_colour_name.toml")
|
||||
.assert()
|
||||
.failure()
|
||||
.stderr(predicate::str::contains("invalid named color"));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_invalid_colour_rgb() -> Result<(), Box<dyn std::error::Error>> {
|
||||
Command::new(get_binary_location())
|
||||
.arg("-C")
|
||||
.arg("./tests/invalid_configs/invalid_colour_rgb.toml")
|
||||
.assert()
|
||||
.failure()
|
||||
.stderr(predicate::str::contains("invalid RGB color"));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_invalid_colour_rgb_2() -> Result<(), Box<dyn std::error::Error>> {
|
||||
Command::new(get_binary_location())
|
||||
.arg("-C")
|
||||
.arg("./tests/invalid_configs/invalid_colour_rgb_2.toml")
|
||||
.assert()
|
||||
.failure()
|
||||
.stderr(predicate::str::contains("invalid RGB color"));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_invalid_colour_string() -> Result<(), Box<dyn std::error::Error>> {
|
||||
Command::new(get_binary_location())
|
||||
.arg("-C")
|
||||
.arg("./tests/invalid_configs/invalid_colour_string.toml")
|
||||
.assert()
|
||||
.failure()
|
||||
.stderr(predicate::str::contains("invalid named color"));
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[flags]
|
||||
temperature_type = "k"
|
||||
temperature_type = "f"
|
||||
temperature_type = "c"
|
|
@ -0,0 +1 @@
|
|||
[[row]]
|
|
@ -0,0 +1,2 @@
|
|||
[colors]
|
||||
table_header_color="#zzzzzz"
|
|
@ -0,0 +1,2 @@
|
|||
[colors]
|
||||
table_header_color="#1111111"
|
|
@ -0,0 +1,2 @@
|
|||
[colors]
|
||||
table_header_color="#我死"
|
|
@ -0,0 +1,2 @@
|
|||
[colors]
|
||||
table_header_color="Light Blue"
|
|
@ -0,0 +1,2 @@
|
|||
[colors]
|
||||
table_header_color="257, 50, 50"
|
|
@ -0,0 +1,2 @@
|
|||
[colors]
|
||||
table_header_color="50, 50, 50, 50"
|
|
@ -0,0 +1,2 @@
|
|||
[colors]
|
||||
table_header_color="this is not a colour"
|
|
@ -0,0 +1,5 @@
|
|||
[[row]]
|
||||
[[row.child]]
|
||||
type="cpu"
|
||||
[[row.child]]
|
||||
type="not_real"
|
|
@ -0,0 +1,2 @@
|
|||
[flags]
|
||||
avg_cpu = "test"
|
Loading…
Reference in New Issue