comtrya_lib/steps/finalizers/
env_vars_remove.rs1use crate::atoms::Atom;
2use crate::steps::finalizers::Finalizer;
3use std::collections::HashMap;
4
5#[derive(Clone, Debug)]
6pub struct RemoveEnvVars(pub HashMap<String, String>);
7
8impl Finalizer for RemoveEnvVars {
9 fn finalize(&self, _atom: &dyn Atom) -> anyhow::Result<bool> {
10 for (key, _value) in self.0.iter() {
11 std::env::remove_var(key);
12 }
13
14 Ok(true)
15 }
16}
17
18#[cfg(test)]
19mod tests {
20 use super::*;
21 use crate::atoms::Echo;
22 use std::env;
23
24 #[test]
25 fn test_env_vars() {
26 let atom = Echo("goodbye-world");
27 env::set_var("FOO", "bar");
28
29 let map = HashMap::from([("FOO".to_string(), "bar".to_string())]);
30 let finalizer = RemoveEnvVars(map);
31 let result = finalizer.finalize(&atom);
32
33 pretty_assertions::assert_eq!(true, result.is_ok());
34 pretty_assertions::assert_eq!(true, result.unwrap());
35 pretty_assertions::assert_eq!(true, std::env::var("FOO").is_err());
36 }
37}