From 5a85545a40c6f3b8982934c5883f59889982522b Mon Sep 17 00:00:00 2001 From: Julien Deniau Date: Thu, 28 Dec 2023 14:39:03 +0000 Subject: [PATCH] Activate option by default + run test for both options --- src/index.ts | 2 +- tests/good/__snapshots__/jsfmt.spec.mjs.snap | 2449 ++++++++++++++++- .../plugin/__snapshots__/jsfmt.spec.mjs.snap | 243 +- tests_config/run_spec.mjs | 12 +- 4 files changed, 2602 insertions(+), 104 deletions(-) diff --git a/src/index.ts b/src/index.ts index 7792db9..4b48bda 100644 --- a/src/index.ts +++ b/src/index.ts @@ -689,7 +689,7 @@ const plugin: Plugin> = { }, forceNewlineBetweenStepBlocks: { type: 'boolean', - default: true, // TODO set to false + default: false, description: 'Force new line between Context and Action blocks', oppositeDescription: 'Do not force hardline between Context and Action blocks', diff --git a/tests/good/__snapshots__/jsfmt.spec.mjs.snap b/tests/good/__snapshots__/jsfmt.spec.mjs.snap index 6aca0a6..b88a206 100644 --- a/tests/good/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/good/__snapshots__/jsfmt.spec.mjs.snap @@ -29,6 +29,22 @@ Feature: Background Scenario: also minimalistic Given the minimalism +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Background + + Background: a simple background + Given the minimalism inside a background + + Scenario: minimalistic + Given the minimalism + + Scenario: also minimalistic + Given the minimalism + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -89,6 +105,36 @@ Feature: Complex background | 1 | | 2 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Complex background + We want to ensure PickleStep all have different IDs + + Background: a simple background + Given the minimalism inside a background + + Scenario: minimalistic + Given the minimalism + + Scenario: also minimalistic + Given the minimalism + + Rule: My Rule + + Background: + Given a rule background step + + Scenario: with examples + Given the minimalism + + Examples: + | value | + | 1 | + | 2 | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -136,6 +182,29 @@ Feature: DataTables # this is a comment | boz2 | boo2 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: DataTables + + Scenario: minimalistic + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -154,6 +223,19 @@ Feature: DataTables ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ options: {} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: DataTables + + Scenario: some whitespace is important + Given 3 lines of poetry on 5 lines + | \\nraindrops--\\nher last kiss\\ngoodbye.\\r\\n | + Given an example of negative space + | lost i n space | + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Feature: DataTables Scenario: some whitespace is important @@ -283,6 +365,68 @@ Feature: Descriptions everywhere | foo | | bar | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Descriptions everywhere + This is a single line description + + Scenario: two lines + This description + has two lines and indented with two spaces + + Given the minimalism + + Scenario: without indentation + This is a description without indentation + + Given the minimalism + + Scenario: empty lines in the middle + This description + + has an empty line in the middle + + Given the minimalism + + Scenario: empty lines around + This description + has an empty lines around + + Given the minimalism + + Scenario: comment after description + This description + has a comment after + + # this is a comment + Given the minimalism + + Scenario: comment right after description + This description + has a comment right after + + # this is another comment + Given the minimalism + + Scenario: description with escaped docstring separator + This description has an \\"\\"\\" (escaped docstring sparator) + + Given the minimalism + + Scenario Outline: scenario outline with a description + This is a scenario outline description + + Given the minimalism + + Examples: examples with description + This is an examples description + + | foo | + | bar | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -342,6 +486,61 @@ Feature: DocString variations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ options: {} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: DocString variations + + Scenario: minimalistic + Given a simple DocString + """ + first line (no indent) + second line (indented with two spaces) + + third line was empty + """ + Given a DocString with content type + """xml + + + + """ + And a DocString with wrong indentation + """ + wrongly indented line + """ + And a DocString with alternative separator + \`\`\` + first line + second line + \`\`\` + And a DocString with normal separator inside + \`\`\` + first line + """ + third line + \`\`\` + And a DocString with alternative separator inside + """ + first line + \`\`\` + third line + """ + And a DocString with escaped separator inside + """ + first line + \\"\\"\\" + third line + """ + And a DocString with an escaped alternative separator inside + \`\`\` + first line + \\\`\\\`\\\` + third line + \`\`\` + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Feature: DocString variations Scenario: minimalistic @@ -405,6 +604,12 @@ source options: {} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -431,6 +636,23 @@ Feature: Escaped pipes The \\-character will be considered as an escape in table cell iff it is followed by a |-character, a \\-character or an n. + Scenario: They are the future + Given they have arrived + | æ | o | + | a | ø | + Given they have arrived + | \\|æ\\\\n | \\o\\no\\ | + | \\\\\\|a\\\\\\\\n | ø\\\\\\nø\\ | + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Escaped pipes + The \\-character will be considered as an escape in table cell + iff it is followed by a |-character, a \\-character or an n. + Scenario: They are the future Given they have arrived | æ | o | @@ -468,6 +690,20 @@ Feature: Example token used multiple times | what | | usage | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Example token used multiple times + + Scenario Outline: Token used twice in a single step + Given + + Examples: + | what | + | usage | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -493,6 +729,26 @@ Feature: Example tokens everywhere ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ options: {} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Example tokens everywhere + + Scenario Outline: the + Given the : + """ + + """ + Given the : + | | + + Examples: + | one | two | three | four | five | + | un | deux | trois | quatre | cinq | + | uno | dos | tres | quatro | cinco | + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Feature: Example tokens everywhere Scenario Outline: the @@ -531,6 +787,17 @@ options: {} 📕: 💃 😐🎸 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# language: em +📚: 🙈🙉🙊 + + 📕: 💃 + 😐🎸 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -610,88 +877,157 @@ Fonctionnalité: i18n support Scénario: Support des caractères spéciaux Soit un exemple de scénario en français - Quand j'ai 1 gâteau Alors je suis heureux Scénario: Support du mot-clef "Etant donné que " Etant donné que j'aime les gâteaux - Lorsqu'on m'offre 1 gâteau Alors je suis heureux Scénario: Support du mot-clef "Etant donné qu'" Etant donné qu'offrir un gâteau rend heureux - Lorsqu'on m'offre 1 gâteau Alors je suis heureux Scénario: Support du mot-clef "Étant donné que " Étant donné que j'aime les gâteaux - Lorsqu'on m'offre 1 gâteau Alors je suis heureux Scénario: Support du mot-clef "Étant donné qu'" Étant donné qu'offrir un gâteau rend heureux - Lorsqu'on m'offre 1 gâteau Alors je suis heureux Scénario: Support du mot-clef "Et que " Soit un exemple de scénario en français - Lorsque j'ai 2 gâteaux Et que quelqu'un m'offre 1 gâteau Alors j'ai 3 gâteaux Scénario: Support du mot-clef "Et qu'" Soit un exemple de scénario en français - Lorsque j'ai 2 gâteaux Et qu'on m'offre 1 gâteau Alors j'ai 3 gâteaux Scénario: Support du mot-clef "Et " Soit un exemple de scénario en français - Quand j'ai 2 gâteaux Et quelqu'un m'offre 1 gâteau Alors j'ai 3 gâteaux Scénario: Support du mot-clef "Mais que " Soit un exemple de scénario en français - Lorsque j'ai 2 gâteaux Mais que quelqu'un me vole 1 gâteau Alors j'ai 1 gâteau Scénario: Support du mot-clef "Mais qu'" Soit un exemple de scénario en français - Lorsque j'ai 2 gâteaux Mais qu'on me vole 1 gâteau Alors j'ai 1 gâteau Scénario: Support du mot-clef "Mais " Soit un exemple de scénario en français - Quand j'ai 2 gâteaux Mais quelqu'un me vole 1 gâteau Alors j'ai 1 gâteau ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -`; - -exports[`i18n_no.feature 1`] = ` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -source +options: { + "forceNewlineBetweenStepBlocks": true +} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -#language:no -Egenskap: i18n support +# language: fr +Fonctionnalité: i18n support - Scenario: Parsing many languages - Gitt Gherkin supports many languages + Scénario: Support des caractères spéciaux + Soit un exemple de scénario en français + + Quand j'ai 1 gâteau + Alors je suis heureux + + Scénario: Support du mot-clef "Etant donné que " + Etant donné que j'aime les gâteaux + + Lorsqu'on m'offre 1 gâteau + Alors je suis heureux + + Scénario: Support du mot-clef "Etant donné qu'" + Etant donné qu'offrir un gâteau rend heureux + + Lorsqu'on m'offre 1 gâteau + Alors je suis heureux + + Scénario: Support du mot-clef "Étant donné que " + Étant donné que j'aime les gâteaux + + Lorsqu'on m'offre 1 gâteau + Alors je suis heureux + + Scénario: Support du mot-clef "Étant donné qu'" + Étant donné qu'offrir un gâteau rend heureux + + Lorsqu'on m'offre 1 gâteau + Alors je suis heureux + + Scénario: Support du mot-clef "Et que " + Soit un exemple de scénario en français + + Lorsque j'ai 2 gâteaux + Et que quelqu'un m'offre 1 gâteau + Alors j'ai 3 gâteaux + + Scénario: Support du mot-clef "Et qu'" + Soit un exemple de scénario en français + + Lorsque j'ai 2 gâteaux + Et qu'on m'offre 1 gâteau + Alors j'ai 3 gâteaux + + Scénario: Support du mot-clef "Et " + Soit un exemple de scénario en français + + Quand j'ai 2 gâteaux + Et quelqu'un m'offre 1 gâteau + Alors j'ai 3 gâteaux + + Scénario: Support du mot-clef "Mais que " + Soit un exemple de scénario en français + + Lorsque j'ai 2 gâteaux + Mais que quelqu'un me vole 1 gâteau + Alors j'ai 1 gâteau + + Scénario: Support du mot-clef "Mais qu'" + Soit un exemple de scénario en français + + Lorsque j'ai 2 gâteaux + Mais qu'on me vole 1 gâteau + Alors j'ai 1 gâteau + + Scénario: Support du mot-clef "Mais " + Soit un exemple de scénario en français + + Quand j'ai 2 gâteaux + Mais quelqu'un me vole 1 gâteau + Alors j'ai 1 gâteau + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +`; + +exports[`i18n_no.feature 1`] = ` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +source +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +#language:no +Egenskap: i18n support + + Scenario: Parsing many languages + Gitt Gherkin supports many languages Når Norwegian keywords are parsed Så they should be recognized @@ -699,6 +1035,19 @@ Egenskap: i18n support options: {} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # language: no +Egenskap: i18n support + + Scenario: Parsing many languages + Gitt Gherkin supports many languages + Når Norwegian keywords are parsed + Så they should be recognized + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# language: no Egenskap: i18n support Scenario: Parsing many languages @@ -731,6 +1080,18 @@ Feature: Incomplete backgrounds, Part 1 Scenario: still pickles up * a step +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Incomplete backgrounds, Part 1 + + Background: no steps + + Scenario: still pickles up + * a step + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -756,6 +1117,21 @@ Feature: Incomplete backgrounds, Part 2 + Scenario: still pickles up + * a step + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Incomplete backgrounds, Part 2 + + Background: just a description + A short description + + + Scenario: still pickles up * a step @@ -777,6 +1153,16 @@ Feature: Just a description +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Just a description + A short description + + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -793,6 +1179,15 @@ Feature: Empty feature +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Empty feature + + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -806,6 +1201,13 @@ options: {} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Just a comment +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# Just a comment + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -831,6 +1233,19 @@ Feature: Incomplete scenarios Scenario: no steps +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Incomplete scenarios + + Background: Adding a background won't make a pickle + * a step + + Scenario: no steps + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -877,6 +1292,35 @@ Feature: Incomplete scenario outlines Scenario Outline: no steps, no examples + Scenario Outline: no steps, no table + Examples: + + + Scenario Outline: no steps, only table header + Examples: + | what | + + Scenario Outline: no steps, one example header + Examples: + | nope | + | nada | + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Incomplete scenario outlines + + Background: Adding a background won't make a pickle + * a step + + Scenario Outline: steps, no examples + Given a step + + Scenario Outline: no steps, no examples + + Scenario Outline: no steps, no table Examples: @@ -913,6 +1357,17 @@ Feature: Explicit language specification Scenario: minimalistic Given the minimalism +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# language: en +Feature: Explicit language specification + + Scenario: minimalistic + Given the minimalism + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -932,6 +1387,16 @@ Feature: Minimal Scenario: minimalistic Given the minimalism +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Minimal + + Scenario: minimalistic + Given the minimalism + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -952,6 +1417,16 @@ Feature: Minimal Example: minimalistic Given the minimalism +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Minimal + + Example: minimalistic + Given the minimalism + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -999,6 +1474,29 @@ Feature: test | color | | red | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: test + + Scenario: test + Given a ball with: + | type | diameter | + | football | 69 | + | pool | 5.6 | + + # The "red" cell below has the following whitespace characters on each side: + # - U+00A0 (non-breaking space) + # - U+0020 (space) + # - U+0009 (tab) + # This is generated with \`ruby -e 'STDOUT.write "\\u00A0\\u0020\\u0009".encode("utf-8")' | pbcopy\` + # and pasted. + Examples: + | color | + | red | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -1050,6 +1548,33 @@ Feature: | m | | n | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +@a +Feature: + + @b + @c + Scenario Outline: + Given + + Examples: + | x | + | y | + + @d + @e + Scenario Outline: + Given + + @f + Examples: + | m | + | n | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -1099,6 +1624,31 @@ Feature: Some rules Example: Example B Given b +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Some rules + + Background: + Given fb + + Rule: A + The rule A description + + Background: + Given ab + + Example: Example A + Given a + + Rule: B + The rule B description + + Example: Example B + Given b + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -1167,6 +1717,40 @@ Feature: Some tagged rules | header | | a | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +@tag_feature +Feature: Some tagged rules + + Rule: Untagged rule + The untagged rule description + + Scenario: Scenario with only a feature tag + Given a + + @tag_rule + Rule: Tagged rule + The tagged rule description + + Scenario: Scenario with feature and rule tags + Given b + + @tag_scenario + Scenario: Scenario with feature, rule and scenario tags + Given b + + @tag_outline + Scenario Outline: Tagged Scenario outline + Given b + + @examples_tag + Examples: + | header | + | a | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -1190,6 +1774,18 @@ Feature: Scenario: Given text +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: + + Rule: + + Scenario: + Given text + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -1218,6 +1814,20 @@ Feature: Minimal Scenario Outline | what | | minimalism | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Minimal Scenario Outline + + Scenario: minimalistic + Given the + + Examples: + | what | + | minimalism | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -1245,6 +1855,20 @@ Feature: Minimal Scenario Outline | what | | minimalism | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Minimal Scenario Outline + + Scenario Outline: minimalistic + Given the + + Examples: + | what | + | minimalism | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -1281,6 +1905,24 @@ Feature: Scenario Outline with a docstring | en | Hello | | fr | Bonjour | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Scenario Outline with a docstring + + Scenario Outline: Greetings come in many forms + Given this file: + """ + Greeting: + """ + + Examples: + | type | content | + | en | Hello | + | fr | Bonjour | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -1309,6 +1951,20 @@ Feature: Scenario Outline with a value with a dollar sign ($) | what | | pa$$word | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Scenario Outline with a value with a dollar sign ($) + + Scenario Outline: minimalistic + Given the + + Examples: + | what | + | pa$$word | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -1329,6 +1985,22 @@ Examples: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ options: {} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Scenario Outline with values with trailing backslash + + Scenario Outline: minimalistic + Given + When + Then + + Examples: + | what | this | that | + | x\\y | this\\ | that\\ | + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Feature: Scenario Outline with values with trailing backslash Scenario Outline: minimalistic @@ -1392,6 +2064,33 @@ Feature: | m | | n | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +@a +Feature: + + @b + @c + Scenario Outline: + Given + + Examples: + | x | + | y | + + @d + @e + Scenario Outline: + Given + + @f + Examples: + | m | + | n | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -1439,6 +2138,30 @@ Feature: Tagged Examples Scenario: ha ok +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Tagged Examples + + Scenario Outline: minimalistic + Given the + + @foo + Examples: + | what | + | foo | + + @bar + Examples: + | what | + | bar | + + @zap + Scenario: ha ok + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -1457,6 +2180,16 @@ OH HAI: STUFFING +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# language: en-lol +OH HAI: STUFFING + + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -1489,6 +2222,22 @@ Feature: Foo | X | | Y | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +@sometag +Feature: Foo + + Scenario Outline: Bar + Then Baz + + Examples: + | name | + | X | + | Y | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -1587,6 +2336,58 @@ Feature: Minimal Scenario Outline Scenario: joined tags Given the @delimits tags +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +@feature_tag1 +@feature_tag2 +@feature_tag3 +Feature: Minimal Scenario Outline + + @scenario_tag1 + @scenario_tag2 + @scenario_tag3 + Scenario: minimalistic + Given the minimalism + + @so_tag1 + @so_tag2 + @so_tag3 + Scenario Outline: minimalistic outline + Given the + + @ex_tag1 + @ex_tag2 + @ex_tag3 + Examples: + | what | + | minimalism | + + @ex_tag4 + @ex_tag5 + @ex_tag6 + Examples: + | what | + | more minimalism | + + @comment_tag1 + Scenario: comments + Given a comment + + @comment_tag#2 + Scenario: hash in tags + Given a comment is preceded by a space + + @rule_tag + Rule: + + @joined_tag3 + @joined_tag4 + Scenario: joined tags + Given the @delimits tags + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -4903,5 +5704,1613 @@ Feature: Long feature file # this is a comment | boz2 | boo2 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Long feature file + This is a long feature file + + Scenario: scenario 01 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 02 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 03 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 04 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 05 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 06 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 07 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 08 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 09 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 10 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 11 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 12 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 13 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 14 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 15 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 16 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 17 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 18 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 19 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 20 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 21 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 22 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 23 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 24 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 25 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 26 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 27 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 28 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 29 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 30 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 31 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 32 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 33 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 34 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 35 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 36 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 37 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 38 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 39 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 40 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 41 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 42 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 43 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 44 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 45 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 46 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 47 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 48 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 49 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 50 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 51 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 52 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 53 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 54 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 55 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 56 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 57 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 58 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 59 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 60 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 61 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 62 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 63 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 64 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 65 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 66 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 67 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 68 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 69 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 70 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 71 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 72 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 73 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 74 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 75 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 76 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 77 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 78 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 79 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 80 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 81 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 82 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 83 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 84 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 85 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 86 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 87 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 88 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 89 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 90 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 91 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 92 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 93 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 94 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 95 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 96 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 97 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 98 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 99 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + + Scenario: scenario 100 + Given a simple data table + | foo | bar | + | boz | boo | + And a data table with a single cell + | foo | + And a data table with different fromatting + | foo | bar | boz | + And a data table with an empty cell + | foo | | boz | + And a data table with comments and newlines inside + | foo | bar | + | boz | boo | + # this is a comment + | boz2 | boo2 | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; diff --git a/tests/plugin/__snapshots__/jsfmt.spec.mjs.snap b/tests/plugin/__snapshots__/jsfmt.spec.mjs.snap index 113d357..e87e7a9 100644 --- a/tests/plugin/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/plugin/__snapshots__/jsfmt.spec.mjs.snap @@ -22,6 +22,24 @@ options: {} Feature: A comment before a "Given" should stay before the "Given". The blankline should be before the comment and not between the comment and the "Given". + Scenario: + Given I have a feature file + When I run the feature file + Then I should see the output + + # this comment should stay just before the second given + Given I have another feature file + When I run the feature file + Then I should see the output + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: A comment before a "Given" should stay before the "Given". + The blankline should be before the comment and not between the comment and the "Given". + Scenario: Given I have a feature file @@ -59,6 +77,19 @@ Feature: A data table with PHP Fully Qualified Classnames | App\\Entity\\Cart | 4 | | App\\Entity\\Cart | 5 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: A data table with PHP Fully Qualified Classnames + + Scenario: + When I have a data table + | entityClassName | id | + | App\\Entity\\Cart | 4 | + | App\\Entity\\Cart | 5 | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -126,6 +157,40 @@ Feature: complex docstring with JSON in it [OK] Declarations complete. """ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: complex docstring with JSON in it + + Scenario: + Given a docstring with + """ + 1 + " + 2 + \\" + 3 + \\"\\"\\" + 4 + """ + + Given I have a complex docstring + """ + A docstring that is not JSON + ======================================= + + but will include some somewhere + ----------------------------------------------------- + + [WARNING] Some warning + + {"error":"NOT AUTHENTICATED","comment":"authentication refused"} + + [OK] Declarations complete. + """ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -133,91 +198,53 @@ exports[`example.feature 1`] = ` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ source ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -@accountability -@accountability-json -Feature: accountability - accounts should always be good - - Scenario Outline: Scenario Outline name - Given I have cukes in my belly - When I wait hour - Then my belly should growl - - Examples: - | number | hour | - | 1 | the first hour of the day | - | 2 | 2 | - - @truncateTables - Scenario: Check accountability - The scenario definition for "Check accountability" - # Insert fixtures - Given the following fixtures files are loaded: - | 10.contracts.yml | - | 20.wallet.yml | - | 30.tax.yml | - - Given I inject the header "authorization" with value 'Bearer some-token' - - And I inject the header "accept" with value "application/json" - - Given I create an order - Then the response status code should be 200 - When I pay the latest order - And I refund the last payment and transaction list with transactions: - """ - [ - { - "name": "card", - "credit": 5000 - } - ] - """ +Feature: A comment before a "Given" should stay before the "Given". + The blankline should be before the comment and not between the comment and the "Given". + + Scenario: + Given I have a feature file + When I run the feature file + Then I should see the output + + # this comment should stay just before the second given + Given I have another feature file + When I run the feature file + Then I should see the output ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ options: {} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -@accountability -@accountability-json -Feature: accountability - accounts should always be good - - Scenario Outline: Scenario Outline name - Given I have cukes in my belly +Feature: A comment before a "Given" should stay before the "Given". + The blankline should be before the comment and not between the comment and the "Given". - When I wait hour - Then my belly should growl + Scenario: + Given I have a feature file + When I run the feature file + Then I should see the output - Examples: - | number | hour | - | 1 | the first hour of the day | - | 2 | 2 | + # this comment should stay just before the second given + Given I have another feature file + When I run the feature file + Then I should see the output - @truncateTables - Scenario: Check accountability - The scenario definition for "Check accountability" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: A comment before a "Given" should stay before the "Given". + The blankline should be before the comment and not between the comment and the "Given". - # Insert fixtures - Given the following fixtures files are loaded: - | 10.contracts.yml | - | 20.wallet.yml | - | 30.tax.yml | + Scenario: + Given I have a feature file - Given I inject the header "authorization" with value 'Bearer some-token' - And I inject the header "accept" with value "application/json" + When I run the feature file + Then I should see the output - Given I create an order - Then the response status code should be 200 + # this comment should stay just before the second given + Given I have another feature file - When I pay the latest order - And I refund the last payment and transaction list with transactions: - """ - [ - { - "name": "card", - "credit": 5000 - } - ] - """ + When I run the feature file + Then I should see the output ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -240,6 +267,18 @@ Feature: some feature # add OAuth token Given something +# saleStartDate is on summer time +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: some feature + + Scenario: Insert fixtures + # add OAuth token + Given something + # saleStartDate is on summer time ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -265,6 +304,20 @@ Feature: some feature # add OAuth token Given something +# Then the response status code should be 403 +# And the JSON nodes should be equal to: +# | hydra:description | Some error did happened | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: some feature + + Scenario: Insert fixtures + # add OAuth token + Given something + # Then the response status code should be 403 # And the JSON nodes should be equal to: # | hydra:description | Some error did happened | @@ -294,6 +347,19 @@ Feature: coucou # step comment Given a step +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# feature comment +Feature: coucou + + # scenario comment + Scenario: Scenario name + # step comment + Given a step + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; @@ -348,5 +414,32 @@ Feature: Escaped pipes | a\\ | | \\a | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +options: { + "forceNewlineBetweenStepBlocks": true +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature: Escaped pipes + The \\-character will be considered as an escape in table cell + iff it is followed by a |-character, a \\-character or an n. + + Scenario: They are the future + Given a huge table with escaped characters + | \\n | + | \\\\n | + | \\\\\\n | + | \\\\\\\\n | + | \\\\\\\\\\n | + | \\\\\\\\\\\\n | + | \\| | + | \\\\\\| | + | \\ | + | a\\b | + | a\\b | + | a\\\\\\b | + | a\\\\\\b | + | a\\ | + | \\a | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `; diff --git a/tests_config/run_spec.mjs b/tests_config/run_spec.mjs index e9cdcf6..f3ca9db 100644 --- a/tests_config/run_spec.mjs +++ b/tests_config/run_spec.mjs @@ -77,10 +77,9 @@ function run_spec(importMeta, options) { }; const defaultOutput = await getOutput({}); - // const outputWithNewline = await prettyprint(input, { - // ...mergedOptions, - // forceNewlineBetweenStepBlocks: true, - // }); + const outputWithNewline = await getOutput({ + forceNewlineBetweenStepBlocks: true, + }); expect( raw( @@ -89,10 +88,7 @@ function run_spec(importMeta, options) { lineSeparator + source + defaultOutput.snapshot + - // separator + - // 'options: { forceNewlineBetweenStepBlocks: true }' + - // separator + - // outputWithNewline + outputWithNewline.snapshot + lastLineSeparator ) ).toMatchSnapshot();