tinyyarn

scenario testing of Unix command line tools
Log | Files | Refs | README | LICENSE

commit 2cf0679dded121c834a95a1b67f7d5a94b670ed6
parent 52a1d4fbaa57cc65718de28ab456fdbccfd03f82
Author: Richard Ipsum <richardipsum@vx21.xyz>
Date:   Sun, 17 Nov 2019 21:46:31 +0000

Ignore whitespace between keyword and description

Diffstat:
Mtyarn.in | 34++++++++++++++++++++++++++++------
1 file changed, 28 insertions(+), 6 deletions(-)

diff --git a/tyarn.in b/tyarn.in @@ -34,6 +34,11 @@ function lstrip(s) return string.gsub(s, '%s+', '', 1) end +function normalise_scenario_line(str, step_type) + normalised, _ = string.gsub(str, '^' .. step_type .. '%s+', step_type .. ' ', 1) + return normalised +end + function parse_implementations(filepath) implementations = {} @@ -49,8 +54,25 @@ function parse_implementations(filepath) line = lstrip(line) if matched then - if string.find(line, "IMPLEMENTS") then + if string.find(line, "IMPLEMENTS GIVEN") then + key = string.gsub(line, "IMPLEMENTS%s+", "") + key = normalise_scenario_line(key, "GIVEN") + implementations[key] = {} + elseif string.find(line, "IMPLEMENTS WHEN") then + key = string.gsub(line, "IMPLEMENTS%s+", "") + key = normalise_scenario_line(key, "WHEN") + implementations[key] = {} + elseif string.find(line, "IMPLEMENTS THEN") then + key = string.gsub(line, "IMPLEMENTS%s+", "") + key = normalise_scenario_line(key, "THEN") + implementations[key] = {} + elseif string.find(line, "IMPLEMENTS ASSUMING") then + key = string.gsub(line, "IMPLEMENTS%s+", "") + key = normalise_scenario_line(key, "ASSUMING") + implementations[key] = {} + elseif string.find(line, "IMPLEMENTS FINALLY") then key = string.gsub(line, "IMPLEMENTS%s+", "") + key = normalise_scenario_line(key, "FINALLY") implementations[key] = {} elseif key ~= nil then -- in the middle of a step's implementation @@ -82,19 +104,19 @@ function parse_scenario_line(scenario, scenario_name, steps_seen, stripped_line = lstrip(line) if tyarn.re_match(line, "^( )[ \t]*GIVEN") then - table.insert(scenario, stripped_line) + table.insert(scenario, normalise_scenario_line(stripped_line, "GIVEN")) last_step_type = "GIVEN" steps_seen["GIVEN"] = true elseif tyarn.re_match(line, "^( )[ \t]*WHEN") then - table.insert(scenario, stripped_line) + table.insert(scenario, normalise_scenario_line(stripped_line, "WHEN")) last_step_type = "WHEN" steps_seen["WHEN"] = true elseif tyarn.re_match(line, "^( )[ \t]*THEN") then - table.insert(scenario, stripped_line) + table.insert(scenario, normalise_scenario_line(stripped_line, "THEN")) last_step_type = "THEN" steps_seen["THEN"] = true elseif tyarn.re_match(line, "^( )[ \t]*ASSUMING") then - table.insert(scenario, stripped_line) + table.insert(scenario, normalise_scenario_line(stripped_line, "ASSUMING")) last_step_type = "ASSUMING" steps_seen["ASSUMING"] = true elseif tyarn.re_match(line, "^( )[ \t]*AND") then @@ -115,7 +137,7 @@ function parse_scenario_line(scenario, scenario_name, steps_seen, elseif tyarn.re_match(line, "^( )[ \t]*FINALLY") then last_step_type = "FINALLY" steps_seen["FINALLY"] = true - table.insert(scenario["FINALLY"], stripped_line) + table.insert(scenario["FINALLY"], normalise_scenario_line(stripped_line, "FINALLY")) end return last_step_type