From 8b7594e9b135a756a83082426d909f9fd0c97bf1 Mon Sep 17 00:00:00 2001 From: Samuel Marks <807580+SamuelMarks@users.noreply.github.com> Date: Fri, 26 Jul 2024 15:44:54 -0400 Subject: [PATCH] [src/lib/descriptor/mod.rs] Manually parse out `before_each` and `after_each` in `cli::descriptor::load` ; [src/lib/execution_plan.rs] Return to using the already parsed out before|after each --- src/lib/descriptor/mod.rs | 8 ++++++++ src/lib/execution_plan.rs | 25 ++++--------------------- 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/src/lib/descriptor/mod.rs b/src/lib/descriptor/mod.rs index 0a84fe4b..6cde3b01 100755 --- a/src/lib/descriptor/mod.rs +++ b/src/lib/descriptor/mod.rs @@ -638,5 +638,13 @@ pub fn load( } } + for (name, _) in config.tasks.iter() { + match name.as_str() { + "before_each" => config.config.before_each_task = Some(name.to_string()), + "after_each" => config.config.after_each_task = Some(name.to_string()), + _ => {} + } + } + Ok(config) } diff --git a/src/lib/execution_plan.rs b/src/lib/execution_plan.rs index 0857b81b..13dad675 100644 --- a/src/lib/execution_plan.rs +++ b/src/lib/execution_plan.rs @@ -549,32 +549,15 @@ impl<'a> ExecutionPlanBuilder<'a> { } }; } - let mut before_each_task: Option = None; - let mut after_each_task: Option = None; - for step in steps.iter() { - match step.name.as_str() { - "before_each" => before_each_task = Some(step.name.clone()), - "after_each" => after_each_task = Some(step.name.clone()), - _ => {} - } - } Ok(ExecutionPlan { - steps: Self::handle_before_each_and_after_each_tasks( - &config, - before_each_task, - after_each_task, - &steps, - )? - .into_owned(), + steps: Self::handle_before_each_and_after_each_tasks(&config, &steps)?.into_owned(), }) } /// `before_each` and `after_each` interspersal for the steps vector fn handle_before_each_and_after_each_tasks<'b>( config: &Config, - before_each_task: Option, - after_each_task: Option, steps: &'b Vec, ) -> Result>, CargoMakeError> { let mut before_and_after_each = Vec::::with_capacity(2); @@ -591,11 +574,11 @@ impl<'a> ExecutionPlanBuilder<'a> { Ok(0) } }; - let _has_after_each: u8 = match after_each_task { + let _has_after_each: u8 = match &config.config.after_each_task { None => 0, Some(after_each) => handle_some(&after_each)?, }; - let _has_before_each: u8 = match before_each_task { + let _has_before_each: u8 = match &config.config.before_each_task { None => 0, Some(before_each) => handle_some(&before_each)?, }; @@ -607,7 +590,7 @@ impl<'a> ExecutionPlanBuilder<'a> { Vec::::with_capacity(steps.len() * before_and_after_each_len); interspersed_steps.extend(steps.into_iter().flat_map(|e| -> Vec { let mut _steps = Vec::::with_capacity(before_and_after_each_len + 1); - _steps.clone_from_slice(&before_and_after_each); + _steps.extend(before_and_after_each.clone()); _steps.push(e.to_owned()); _steps }));