Feature: App Settings
<In order to> configure my experience with the app <As a> user of cucumber-forge-desktop <I want> to be able to adjust persistant settings for the app
Scenario: Toggling the settings view
Given there is a file named 'pets/dog_care.feature' with the following contents:
Feature: Dog Care Scenario: Feeding the Dog Given the dog is hungery When I give dog food to the dog Then the dog will eat it
When the user clicks the settings button
Then the settings view will be displayed
When the user clicks the settings button
Then the settings view will be hidden
When the user clicks the settings button
Then the settings view will be displayed
When the user selects the 'pets' directory with the folder selection button
Then the report will be displayed
And the settings view will be hidden
When the user clicks the settings button
Then the settings view will be displayed
And the report will be hidden
When the user clicks the settings button
And the settings view will be hidden
Then the report will be displayed
Scenario: Selecting an alternative Gherkin dialect
Reports can be generated for features written with alternative Gherkin dialects by selecting the proper Default Gherkin Dialect in the Cucumber Forge settings.
Given there is a file named 'pets/afrikaans.feature' with the following contents:
Besigheid Behoefte: Hondsorg Agtergrond: Gegewe Ek het 'n hond Situasie: Die hond voed Gegewe die hond is honger Wanneer I give dog food to the dog Dan Ek gee hondekos vir die hond Situasie Uiteensetting: Die hondjie klapper Wanneer Ek troeteldier van die hond se hare <direction:> Dan die hond sal <result> Maar die hond sal my nie byt nie En die hond sal kalmeer Voorbeelde: | direction: | result | | agteruit | lek my hand | | voorspelers | grom |
When the user clicks the settings button
And the user selects 'af' from the Default Gherkin Dialect drop-down menu
And the user selects the 'pets' directory with the folder selection button
Then the report will be displayed
And the report will contain 1 features
And the report will contain 2 scenarios
Scenario: Generating an HTML report for a feature file with an alternative Gherkin dialect when the language header is present in the feature
If there is a language header is present in the feature, that language will be prefered for that file when generating report (regarless of the configured Default Gherkin Dialect in the Cucumber Forge setting). This allows for generating reports for a set of feature files written with different Gherkin dialects.
Given there is a file named 'pets/dog_care.feature' with the following contents:
Feature: Dog Care Scenario: Feeding the Dog Given the dog is hungery When I give dog food to the dog Then the dog will eat it
And there is a file named 'pets/panjabi.feature' with the following contents:
# language: pa ਨਕਸ਼ ਨੁਹਾਰ: ਕੁੱਤੇ ਦੀ ਦੇਖਭਾਲ ਪਿਛੋਕੜ: ਜਿਵੇਂ ਕਿ ਮੇਰੇ ਕੋਲ ਇੱਕ ਕੁੱਤਾ ਹੈ ਪਟਕਥਾ: ਕੁੱਤੇ ਨੂੰ ਖੁਆਉਣਾ ਜੇਕਰ ਕੁੱਤਾ ਭੁੱਖਾ ਹੈ ਜਦੋਂ ਮੈਂ ਕੁੱਤੇ ਨੂੰ ਖਾਣਾ ਦਿੰਦਾ ਹਾਂ ਤਦ ਕੁੱਤਾ ਇਹ ਖਾਵੇਗਾ ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ: ਕੁੱਤਾ ਪਾਲ ਰਹੇ ਜਦੋਂ ਮੈਂ ਕੁੱਤੇ ਦੇ ਵਾਲ ਪਾਲਤੂ ਹਾਂ <direction:> ਤਦ ਕੁੱਤਾ ਕਰੇਗਾ <result> ਪਰ ਕੁੱਤਾ ਮੈਨੂੰ ਨਹੀਂ ਡੰਗੇਗਾ ਅਤੇ ਕੁੱਤਾ ਸ਼ਾਂਤ ਹੋ ਜਾਵੇਗਾ ਉਦਾਹਰਨਾਂ: | direction: | result | | ਪਿੱਛੇ ਵੱਲ | ਮੇਰਾ ਹੱਥ ਚੱਟੋ | | ਅੱਗੇ | ਫੁੱਟ |
When the user clicks the settings button
And the user selects 'en' from the Default Gherkin Dialect drop-down menu
And the user selects the 'pets' directory with the folder selection button
Then the report will be displayed
And the report will contain 2 features
And the report will contain 3 scenarios
Feature: Generate Report
<In order to> record or communicate feature documentation <As a> user of cucumber-forge-desktop <I want> to generate HTML reports directly from the feature files in a directory
Background:
Given there is a file named 'pets/dog_care.feature' with the following contents:
Feature: Dog Care <In order to> care for and enjoy my pet <As a> dog owner <I want> interact with my dog Background: Given I have a dog @feeding Scenario: Feeding the Dog Given the dog is hungery When I give dog food to the dog Then the dog will eat it @petting Scenario Outline: Petting the Dog Dog's do not like to be pet in the wrong direction. When I pet the dog's hair <direction:> Then the dog will <result> Examples: | direction: | result | | backwards | lick my hand | | forwards | growl |
And there is a file named 'pets/felines/cat_care.feature' with the following contents:
Feature: Cat Care <In order to> care for and enjoy my pet <As a> cat owner <I want> interact with my cat Background: Given I have a cat @feeding Scenario: Feeding the Cat Given the cat is hungery When I give the following food to the cat: | fish | | steak | Then the cat will eat it @petting Scenario Outline: Petting the Cat Cat's do not like to be pet in the wrong direction. When I pet the cat's hair <direction:> Then the cat will hiss Examples: | direction: | | backwards | | forwards |
Scenario: Generating an HTML report for the features in a directory and its sub-directories
When the user selects the 'pets' directory with the folder selection button
Then the report will be displayed
And the report name on the sidebar will be 'All Scenarios'
And the project title on the sidebar will be 'pets'
And the report will contain 2 features
And the report will contain 4 scenarios
Scenario Outline: Generating an HTML report filtered by a tag
Provided tags can include the '@' symbol, but it is not required.
When the user enters the value <tag:> into the filter text box
And the user selects the 'pets' directory with the folder selection button
Then the report will be displayed
And the report name on the sidebar will be <tag:>
And the report will contain 2 features
And the report will contain 2 scenarios
Examples:
tag: |
---|
'feeding' |
'@feeding' |
Scenario Outline: Filtering a report by a tag when the report has already been generated
Given the user selects the 'pets/felines' directory with the folder selection button
And the report is displayed
And the report contains 2 scenarios
And the report name on the sidebar is 'All Scenarios'
When the user enters the value 'feeding' into the filter text box
And the user <action:>
Then the report will be displayed
And the report will contain 1 scenario
And the report name on the sidebar will be 'feeding'
Examples:
action: |
---|
clicks the filter button |
presses enter |
Feature: Save Report
<In order to> record or communicate feature documentation <As a> user of cucumber-forge-desktop <I want> to save HTML reports generated from the feature files
Background:
Given there is a file named 'pets/dog_care.feature' with the following contents:
Feature: Dog Care <In order to> care for and enjoy my pet <As a> dog owner <I want> interact with my dog Background: Given I have a dog @feeding Scenario: Feeding the Dog Given the dog is hungery When I give dog food to the dog Then the dog will eat it @petting Scenario Outline: Petting the Dog Dog's do not like to be pet in the wrong direction. When I pet the dog's hair <direction:> Then the dog will <result> Examples: | direction: | result | | backwards | lick my hand | | forwards | growl |
And there is a file named 'pets/felines/cat_care.feature' with the following contents:
Feature: Cat Care <In order to> care for and enjoy my pet <As a> cat owner <I want> interact with my cat Background: Given I have a cat @feeding Scenario: Feeding the Cat Given the cat is hungery When I give the following food to the cat: | fish | | steak | Then the cat will eat it @petting Scenario Outline: Petting the Cat Cat's do not like to be pet in the wrong direction. When I pet the cat's hair <direction:> Then the cat will hiss Examples: | direction: | | backwards | | forwards |
Scenario: Saving an HTML report
Given the user selects the 'pets/felines' directory with the folder selection button
And the report is displayed
And the project title on the sidebar is 'felines'
When the user clicks the save button
Then the report will be saved in a file called 'felines.html'
Scenario: Saving an HTML report that is filtered by a tag
Given the user enters the value 'feeding' into the filter text box
And the user selects the 'pets' directory with the folder selection button
And the report is displayed
And the report name on the sidebar is 'feeding'
And the project title on the sidebar is 'pets'
When the user clicks the save button
Then the report will be saved in a file called 'feeding_pets.html'