diff --git a/cypress/integration/ScenarioOutline.feature b/cypress/integration/ScenarioOutline.feature index 61408054..e4839dbe 100644 --- a/cypress/integration/ScenarioOutline.feature +++ b/cypress/integration/ScenarioOutline.feature @@ -33,4 +33,12 @@ Feature: Being a plugin handling Scenario Outline | first | second | result | | 1 | 2 | 3 | | 3 | 4 | 7 | - | 5 | 6 | 11 | \ No newline at end of file + | 5 | 6 | 11 | + + Scenario Outline: Multiple variables and + When I enter variable "" and "" + Then I verify that both variables have "" as value + + Examples: + | here | + | abc | \ No newline at end of file diff --git a/cypress/support/step_definitions/scenario_outline_multiple_vars.js b/cypress/support/step_definitions/scenario_outline_multiple_vars.js new file mode 100644 index 00000000..20de5b14 --- /dev/null +++ b/cypress/support/step_definitions/scenario_outline_multiple_vars.js @@ -0,0 +1,14 @@ +/* global then, when */ + +let var1 = "var1"; +let var2 = "var2"; + +when("I enter variable {string} and {string}", (v1, v2) => { + var1 = v1; + var2 = v2; +}); + +then("I verify that both variables have {string} as value", value => { + expect(value).to.equal(var1); + expect(value).to.equal(var2); +}); diff --git a/lib/createTestFromScenario.js b/lib/createTestFromScenario.js index 7a9b161e..cb3f6af4 100644 --- a/lib/createTestFromScenario.js +++ b/lib/createTestFromScenario.js @@ -9,7 +9,7 @@ const { generateCucumberJson } = require("./cukejson/generateCucumberJson"); const replaceParameterTags = (rowData, text) => Object.keys(rowData).reduce( - (value, key) => value.replace(`<${key}>`, rowData[key]), + (value, key) => value.replace(new RegExp(`<${key}>`, "g"), rowData[key]), text ); diff --git a/lib/resolveStepDefinition.test.js b/lib/resolveStepDefinition.test.js index b35da372..e967eb7d 100644 --- a/lib/resolveStepDefinition.test.js +++ b/lib/resolveStepDefinition.test.js @@ -8,6 +8,7 @@ describe("Scenario Outline", () => { require("../cypress/support/step_definitions/scenario_outline_integer"); require("../cypress/support/step_definitions/scenario_outline_string"); require("../cypress/support/step_definitions/scenario_outline_data_table"); + require("../cypress/support/step_definitions/scenario_outline_multiple_vars"); resolveFeatureFromFile("./cypress/integration/ScenarioOutline.feature"); });