<commit_before>@template @draft

Feature: Template
# the feature name should be some terse yet descriptive text of what is desired
  As an # explicit user role
  I want to # use a feature
  So that # some benefit

# User roles for the application are:
#
#   User - anyone who uses the application
#   Data Packager - someone who uses the application to create, edit, describe, validate and share usable open data
#   Data Consumer - someone who uses the application to read published data packages
#   Sponsor - a person or organisation that has funded development or maintenance of the application
#   Contributor - a person who has contributed or is considering contributing to the application
#   Maintainer - a person who application development support for the application
#

  RULES
  -----

  - Describe any RULES to be applied in the Scenario

  NOTES
  -----

  - add notes

  QUESTIONS
  ---------

    - QUESTIONS questions

  LATER
  -----

  - Describe any deferred features


  Scenario: Some determinable business situation
#   the scenario name is important as it is returned when automated tests fail.
    Given I have opened Data Curator [initial context]
    And I have done some other precondition
    When some action by the actor (i.e. a event happens)
    When I select "Previous Tab" from the menu
    When I use the Previous Tab keyboard shortcut
    And yet another action
    Then some testable outcome is achieved (i.e check the outcome)
    And something else we can check happens too

# General RULES
#
# Technique - write "upwards": Then, When, Given
#
# Don't put 'or' in the Given/When/Then statements - these statements should be pulled out into two different scenarios.
#
# Don't put conditions in  When/Then statements. An if statement can be changed into two different scenarios and the if condition put up into the Given statement.
#
# Use "quotes" arounded named things in the Application, e.g. a "Menu item name"
#
# Use "double quotes" not 'single quotes'
#




# Given RULES
#
# Write in perfect present tense - http://www.ef-australia.com.au/english-resources/english-grammar/present-perfect/
#
# write in third person, not first person - https://automationpanda.com/2017/01/18/should-gherkin-steps-use-first-person-or-third-person/
#
# Omit the obvious. E.g. Given app is open
#
# When RULES
#
# Don't drive the User Interface in the When statement. State what happened, not how it happened.
#
# Single When per scenario
#
# Then RULES
#
# Use "should" in Then statement
#<commit_msg>reformat<commit_after>@template @draft

Feature: Template
# the feature name should be some terse yet descriptive text of what is desired
  As an explicit user role
  I want to use a feature
  So that some benefit

  RULES
  =====

  User roles for the application are:
  - User - anyone who uses the application
  - Data Packager - someone who uses the application to create, edit, describe, validate and share usable open data
  - Data Consumer - someone who uses the application to read published data packages
  - Sponsor - a person or organisation that has funded development or maintenance of the application
  - Contributor - a person who has contributed or is considering contributing to the application
  - Maintainer - a person who application development support for the application

  General Rules
  -------------

  - Technique - write "upwards": Then, When, Given
  - Don't put 'or' in the Given/When/Then statements - these statements should be pulled out into two different scenarios.
  - Don't put conditions in  When/Then statements. An if statement can be changed into two different scenarios and the if condition put up into the Given statement.
  - Use "quotes" arounded named things in the Application, e.g. a "Menu item name"
  - Use "double quotes" not 'single quotes'

  Rules for Given
  ---------------

  - Write in [perfect present tense](http://www.ef-australia.com.au/english-resources/english-grammar/present-perfect/)
  - Write in [third person, not first person](https://automationpanda.com/2017/01/18/should-gherkin-steps-use-first-person-or-third-person/); Using the pronoun "I" is an [anti-pattern](https://cucumber.io/blog/2016/08/31/cucumber-anti-patterns-part-two#scenarios-that-use-i-as-in-the-personal-pronoun)
  - Omit the obvious. E.g. Given app is open

  Rules for When
  --------------

  - Don't drive the User Interface in the When statement. State what happened, not how it happened.
  - Single When per scenario

  Rules for Then
  --------------

  - Use "should" in Then statement

  NOTES
  -----

  - add notes

  QUESTIONS
  ---------

  - any questions

  LATER
  -----

  - Describe any deferred features

  Scenario: Some determinable business situation
#   the scenario name is important as it is returned when automated tests fail.
    Given I have opened Data Curator [initial context]
    And I have done some other precondition
    When some action by the actor (i.e. a event happens)
    When I select "Previous Tab" from the menu
    When I use the Previous Tab keyboard shortcut
    And yet another action
    Then some testable outcome is achieved (i.e check the outcome)
    And something else we can check happens too
{'fraction_non_alphanumeric': 0.07860429447852761, 'fraction_numerical': 0.004601226993865031, 'mean_word_length': 3.1503579952267304, 'pattern_counts': {'":': 2, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 3, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '361837', 'n_tokens_mistral': 1441, 'n_tokens_neox': 1365, 'n_words': 671}