diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2023-08-12 10:36:10 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2023-08-12 10:36:10 +0100 |
commit | 1646f8cbc8191d7e7a68abb0a99090b55b069097 (patch) | |
tree | ca4aa2e555a7cb6604d637d6717efdf20b298af3 /src/bindings.rs | |
parent | f6093a207f7f46eb547d90f2bb20113a9b009028 (diff) | |
download | subplot-1646f8cbc8191d7e7a68abb0a99090b55b069097.tar.gz |
steps: Pass location information into scenarios and scenario steps for error messages
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Diffstat (limited to 'src/bindings.rs')
-rw-r--r-- | src/bindings.rs | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/bindings.rs b/src/bindings.rs index 2738aa1..e94b64e 100644 --- a/src/bindings.rs +++ b/src/bindings.rs @@ -311,6 +311,7 @@ impl Eq for Binding {} #[cfg(test)] mod test_binding { use super::Binding; + use crate::html::Location; use crate::PartialStep; use crate::ScenarioStep; use crate::StepKind; @@ -347,21 +348,21 @@ mod test_binding { #[test] fn does_not_match_with_wrong_kind() { - let step = ScenarioStep::new(StepKind::Given, "given", "yo"); + let step = ScenarioStep::new(StepKind::Given, "given", "yo", Location::Unknown); let b = Binding::new(StepKind::When, "yo", false, HashMap::new()).unwrap(); assert!(b.match_with_step("", &step).is_none()); } #[test] fn does_not_match_with_wrong_text() { - let step = ScenarioStep::new(StepKind::Given, "given", "foo"); + let step = ScenarioStep::new(StepKind::Given, "given", "foo", Location::Unknown); let b = Binding::new(StepKind::Given, "bar", false, HashMap::new()).unwrap(); assert!(b.match_with_step("", &step).is_none()); } #[test] fn match_with_fixed_pattern() { - let step = ScenarioStep::new(StepKind::Given, "given", "foo"); + let step = ScenarioStep::new(StepKind::Given, "given", "foo", Location::Unknown); let b = Binding::new(StepKind::Given, "foo", false, HashMap::new()).unwrap(); let m = b.match_with_step("", &step).unwrap(); assert_eq!(m.kind(), StepKind::Given); @@ -373,7 +374,12 @@ mod test_binding { #[test] fn match_with_regex() { - let step = ScenarioStep::new(StepKind::Given, "given", "I am Tomjon, I am"); + let step = ScenarioStep::new( + StepKind::Given, + "given", + "I am Tomjon, I am", + Location::Unknown, + ); let b = Binding::new( StepKind::Given, r"I am (?P<who>\S+), I am", @@ -392,7 +398,7 @@ mod test_binding { #[test] fn case_sensitive_mismatch() { - let step = ScenarioStep::new(StepKind::Given, "given", "I am Tomjon"); + let step = ScenarioStep::new(StepKind::Given, "given", "I am Tomjon", Location::Unknown); let b = Binding::new(StepKind::Given, r"i am tomjon", false, HashMap::new()).unwrap(); assert!(b.match_with_step("", &step).is_some()); let b = Binding::new(StepKind::Given, r"i am tomjon", true, HashMap::new()).unwrap(); @@ -583,6 +589,7 @@ fn from_hashmap(parsed: &ParsedBinding) -> Result<Binding, SubplotError> { #[cfg(test)] mod test_bindings { + use crate::html::Location; use crate::Binding; use crate::Bindings; use crate::PartialStep; @@ -686,7 +693,7 @@ mod test_bindings { #[test] fn does_not_find_match_for_unmatching_kind() { - let step = ScenarioStep::new(StepKind::Given, "given", "I am Tomjon"); + let step = ScenarioStep::new(StepKind::Given, "given", "I am Tomjon", Location::Unknown); let binding = Binding::new(StepKind::When, r"I am Tomjon", false, HashMap::new()).unwrap(); let mut bindings = Bindings::new(); bindings.add(binding); @@ -698,7 +705,7 @@ mod test_bindings { #[test] fn does_not_find_match_for_unmatching_pattern() { - let step = ScenarioStep::new(StepKind::Given, "given", "I am Tomjon"); + let step = ScenarioStep::new(StepKind::Given, "given", "I am Tomjon", Location::Unknown); let binding = Binding::new( StepKind::Given, r"I am Tomjon of Lancre", @@ -716,7 +723,7 @@ mod test_bindings { #[test] fn two_matching_bindings() { - let step = ScenarioStep::new(StepKind::Given, "given", "I am Tomjon"); + let step = ScenarioStep::new(StepKind::Given, "given", "I am Tomjon", Location::Unknown); let mut bindings = Bindings::default(); bindings.add(Binding::new(StepKind::Given, r"I am Tomjon", false, HashMap::new()).unwrap()); bindings.add( @@ -737,7 +744,7 @@ mod test_bindings { #[test] fn finds_match_for_fixed_string_pattern() { - let step = ScenarioStep::new(StepKind::Given, "given", "I am Tomjon"); + let step = ScenarioStep::new(StepKind::Given, "given", "I am Tomjon", Location::Unknown); let binding = Binding::new(StepKind::Given, r"I am Tomjon", false, HashMap::new()).unwrap(); let mut bindings = Bindings::new(); bindings.add(binding); @@ -754,7 +761,7 @@ mod test_bindings { #[test] fn finds_match_for_regexp_pattern() { - let step = ScenarioStep::new(StepKind::Given, "given", "I am Tomjon"); + let step = ScenarioStep::new(StepKind::Given, "given", "I am Tomjon", Location::Unknown); let binding = Binding::new( StepKind::Given, r"I am (?P<name>\S+)", |