diff --git a/src/flamegraph/color/palettes.rs b/src/flamegraph/color/palettes.rs index c172e325..750e8e3f 100644 --- a/src/flamegraph/color/palettes.rs +++ b/src/flamegraph/color/palettes.rs @@ -100,3 +100,33 @@ pub(super) mod wakeup { BasicPalette::Aqua } } + +#[cfg(test)] +mod tests { + + struct TestData { + input: String, + output: BasicPalette + } + + #[test] + fn js_returns_correct() { + use super::js; + use crate::flamegraph::color::BasicPalette; + + let test_data = [ + TestData {input: String::from(" "), output: BasicPalette::Green}, + TestData {input: String::from("something_[k]"), output: BasicPalette::Orange}, + TestData {input: String::from("something/_[j]"), output: BasicPalette::Green}, + TestData {input: String::from("something_[j]"), output: BasicPalette::Aqua}, + TestData {input: String::from("some::thing"), output: BasicPalette::Yellow}, + TestData {input: String::from("some:thing"), output: BasicPalette::Aqua}, + TestData {input: String::from("some/ai.js"), output: BasicPalette::Green}, + TestData {input: String::from("someai.js"), output: BasicPalette::Red}, + ]; + for elem in test_data.iter() { + let result = js::resolve(&elem.input); + assert_eq!(result, elem.output); + } + } +}