comtrya_lib/steps/finalizers/
output_contains.rs1use 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}