summaryrefslogtreecommitdiff
path: root/src/ast.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ast.rs')
-rw-r--r--src/ast.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/ast.rs b/src/ast.rs
index f59d9f4..9ae92c6 100644
--- a/src/ast.rs
+++ b/src/ast.rs
@@ -164,6 +164,7 @@ fn extract_scenario(e: &[Element]) -> Result<(Option<Scenario>, usize)> {
Element::Snippet(_) => Err(Error::scenario_before_heading()),
Element::Heading(title, level) => {
let mut scen = Scenario::new(&title);
+ let mut prevkind = StepKind::Given;
for (i, item) in e.iter().enumerate().skip(1) {
match item {
Element::Heading(_, level2) => {
@@ -181,8 +182,9 @@ fn extract_scenario(e: &[Element]) -> Result<(Option<Scenario>, usize)> {
}
Element::Snippet(text) => {
for line in parse_scenario_snippet(&text) {
- let step = ScenarioStep::new_from_str(line)?;
+ let step = ScenarioStep::new_from_str(line, prevkind)?;
scen.add(&step);
+ prevkind = step.kind();
}
}
}
@@ -532,7 +534,7 @@ pub fn scenario_snippet(bindings: &Bindings, snippet: &str) -> Block {
// Typeset a single scenario step as a sequence of Pandoc AST Inlines.
fn step(bindings: &Bindings, text: &str) -> Vec<Inline> {
- let step = ScenarioStep::new_from_str(text);
+ let step = ScenarioStep::new_from_str(text, StepKind::Given);
if step.is_err() {
eprintln!("Could not parse step: {}", text);
return error_msg(&format!("Could not parse step: {}", text));