comtrya_lib/steps/finalizers/
output_contains.rs

1use super::Finalizer;
2use crate::atoms::Atom;
3
4#[derive(Clone, Debug)]
5pub struct OutputContains(pub &'static str);
6
7impl Finalizer for OutputContains {
8    fn finalize(&self, atom: &dyn Atom) -> anyhow::Result<bool> {
9        Ok(atom.output_string().contains(self.0))
10    }
11}
12
13#[cfg(test)]
14mod tests {
15    use super::*;
16    use crate::atoms::Echo;
17    use pretty_assertions::assert_eq;
18
19    #[test]
20    fn it_returns_false_when_not_found() {
21        let atom = Echo("goodbye-world");
22        let finalizer = OutputContains("hello-world");
23        let result = finalizer.finalize(&atom);
24
25        assert_eq!(true, result.is_ok());
26        assert_eq!(false, result.unwrap());
27    }
28
29    #[test]
30    fn it_returns_true_when_found() {
31        let step = Echo("hello-world");
32        let finalizer = OutputContains("hello-world");
33        let result = finalizer.finalize(&step);
34
35        assert_eq!(true, result.is_ok());
36        assert_eq!(true, result.unwrap());
37    }
38}