diff options
Diffstat (limited to 'src/scenarios.rs')
-rw-r--r-- | src/scenarios.rs | 44 |
1 files changed, 13 insertions, 31 deletions
diff --git a/src/scenarios.rs b/src/scenarios.rs index 9285f1b..17549d2 100644 --- a/src/scenarios.rs +++ b/src/scenarios.rs @@ -1,4 +1,4 @@ -use crate::ScenarioStep; +use crate::{html::Location, ScenarioStep}; use serde::{Deserialize, Serialize}; /// An acceptance test scenario. @@ -10,7 +10,7 @@ use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize)] pub struct Scenario { title: String, - name: Option<String>, + origin: Location, steps: Vec<ScenarioStep>, } @@ -18,10 +18,10 @@ impl Scenario { /// Construct a new scenario. /// /// The new scenario will have a title, but no steps. - pub fn new(title: &str) -> Scenario { + pub fn new(title: &str, origin: Location) -> Scenario { Scenario { title: title.to_string(), - name: None, + origin, steps: vec![], } } @@ -31,16 +31,6 @@ impl Scenario { &self.title } - /// Set name of scenario. - pub fn set_name(&mut self, name: &str) { - self.name = Some(name.to_string()); - } - - /// Return name of scenario. - pub fn name(&self) -> Option<&str> { - self.name.as_deref() - } - /// Does the scenario have steps? pub fn has_steps(&self) -> bool { !self.steps.is_empty() @@ -55,43 +45,35 @@ impl Scenario { pub fn add(&mut self, step: &ScenarioStep) { self.steps.push(step.clone()); } + + pub(crate) fn origin(&self) -> &Location { + &self.origin + } } #[cfg(test)] mod test { use super::Scenario; + use crate::html::Location; use crate::ScenarioStep; use crate::StepKind; #[test] fn has_title() { - let scen = Scenario::new("title"); + let scen = Scenario::new("title", Location::Unknown); assert_eq!(scen.title(), "title"); } #[test] - fn has_no_name_initially() { - let scen = Scenario::new("title"); - assert_eq!(scen.name(), None); - } - - #[test] - fn sets_name() { - let mut scen = Scenario::new("title"); - scen.set_name("Alfred"); - assert_eq!(scen.name(), Some("Alfred")); - } - - #[test] fn has_no_steps_initially() { - let scen = Scenario::new("title"); + let scen = Scenario::new("title", Location::Unknown); assert_eq!(scen.steps().len(), 0); } #[test] fn adds_step() { - let mut scen = Scenario::new("title"); - let step = ScenarioStep::new(StepKind::Given, "and", "foo"); + let mut scen = Scenario::new("title", Location::Unknown); + let step = ScenarioStep::new(StepKind::Given, "and", "foo", Location::Unknown); scen.add(&step); assert_eq!(scen.steps(), &[step]); } |