summaryrefslogtreecommitdiff
path: root/src/scenarios.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/scenarios.rs')
-rw-r--r--src/scenarios.rs44
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]);
}