cucumberator 0.0.8 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/.gitignore +1 -0
 - data/.travis.yml +7 -0
 - data/README.md +21 -11
 - data/cucumberator.gemspec +7 -3
 - data/features/cucumberize.feature +39 -0
 - data/features/exit_all.feature +28 -0
 - data/features/force_save.feature +31 -0
 - data/features/help.feature +33 -0
 - data/features/last_step.feature +23 -0
 - data/features/next.feature +38 -0
 - data/features/save.feature +88 -0
 - data/features/simple_hook.feature +29 -0
 - data/features/steps.feature +31 -0
 - data/features/support/env.rb +5 -0
 - data/features/undo.feature +89 -0
 - data/features/where.feature +55 -0
 - data/lib/cucumberator.rb +5 -4
 - data/lib/cucumberator/commands.rb +14 -0
 - data/lib/cucumberator/commands/exit.rb +10 -0
 - data/lib/cucumberator/commands/exit_all.rb +11 -0
 - data/lib/cucumberator/commands/help.rb +23 -0
 - data/lib/cucumberator/commands/last_step.rb +9 -0
 - data/lib/cucumberator/commands/next.rb +39 -0
 - data/lib/cucumberator/commands/save.rb +80 -0
 - data/lib/cucumberator/commands/steps.rb +19 -0
 - data/lib/cucumberator/commands/undo.rb +27 -0
 - data/lib/cucumberator/commands/where.rb +33 -0
 - data/lib/cucumberator/current_step.rb +10 -6
 - data/lib/cucumberator/feature_file.rb +27 -0
 - data/lib/cucumberator/input.rb +42 -0
 - data/lib/cucumberator/parser.rb +61 -0
 - data/lib/cucumberator/step_line.rb +29 -0
 - data/lib/cucumberator/steps.rb +20 -0
 - data/lib/cucumberator/version.rb +1 -1
 - metadata +53 -11
 - data/lib/cucumberator/writer.rb +0 -260
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: fd33d4cd979148095682cd5dbf9105e1f4f4f720
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 17b116517d3783d358bc4b4b9c8ca979c2980016
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 4acd1ecca4389109c3ebda242b6056d8f46fa143ae5446f960854240fdc46c9bba7071392fdd34bf0865013fe617996ed82cb4b8724dba24179f4630bef123e5
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 00a422b4c21ad26fb90c4b5762c7236c446bc4e76c4ab298e28d86d286b2afa8cbbbdc1b57f07428525a785ecb8594c06d5594c8a996b32ab4dee4b48f55dfa3
         
     | 
    
        data/.gitignore
    CHANGED
    
    
    
        data/.travis.yml
    ADDED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -1,9 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            Cucumberator is Cucumber extension to write steps in command line, whatch how browser responds to them and save directly to your .feature file.
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            [](http://badge.fury.io/rb/cucumberator)
         
     | 
| 
      
 4 
     | 
    
         
            +
            [](https://gemnasium.com/vidmantas/cucumberator)
         
     | 
| 
      
 5 
     | 
    
         
            +
            [](https://codeclimate.com/github/vidmantas/cucumberator)
         
     | 
| 
      
 6 
     | 
    
         
            +
            [](https://travis-ci.org/vidmantas/cucumberator)
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
       3 
8 
     | 
    
         
             
            ## How to use
         
     | 
| 
       4 
9 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            *  
     | 
| 
       6 
     | 
    
         
            -
            * Or  
     | 
| 
      
 10 
     | 
    
         
            +
            * Place a step "Then I will write new steps" anywhere in scenario [PREFERRED]
         
     | 
| 
      
 11 
     | 
    
         
            +
            * Or put @cucumberize tag in front of **last** scenario you want to append with new steps.
         
     | 
| 
       7 
12 
     | 
    
         
             
            * Fire up the cucumber and wait until prompt shows up.
         
     | 
| 
       8 
13 
     | 
    
         
             
            * Write a step, watch it happen on the browser!
         
     | 
| 
       9 
14 
     | 
    
         | 
| 
         @@ -45,10 +50,11 @@ Now use special step in any place: 
     | 
|
| 
       45 
50 
     | 
    
         
             
            	Then I will write new steps
         
     | 
| 
       46 
51 
     | 
    
         
             
            	# ...can be the end or other steps...
         
     | 
| 
       47 
52 
     | 
    
         | 
| 
       48 
     | 
    
         
            -
            or put @cucumberize before last 
     | 
| 
      
 53 
     | 
    
         
            +
            or put @cucumberize before **last** scenario you want to fill up, for example
         
     | 
| 
       49 
54 
     | 
    
         | 
| 
       50 
     | 
    
         
            -
            	@ 
     | 
| 
      
 55 
     | 
    
         
            +
            	@cucumberize
         
     | 
| 
       51 
56 
     | 
    
         
             
            	Scenario: check fancy ajax login
         
     | 
| 
      
 57 
     | 
    
         
            +
            		Given a user with login of "likeaboss"
         
     | 
| 
       52 
58 
     | 
    
         | 
| 
       53 
59 
     | 
    
         
             
            and then run this feature file, watch your console for prompt to show up. Enjoy writing steps on the go!
         
     | 
| 
       54 
60 
     | 
    
         | 
| 
         @@ -56,17 +62,21 @@ and then run this feature file, watch your console for prompt to show up. Enjoy 
     | 
|
| 
       56 
62 
     | 
    
         | 
| 
       57 
63 
     | 
    
         
             
            Latest cucumberator version supports:
         
     | 
| 
       58 
64 
     | 
    
         | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
      
 65 
     | 
    
         
            +
            * Cucumber >= 1.3
         
     | 
| 
      
 66 
     | 
    
         
            +
            * Ruby >= 1.9
         
     | 
| 
      
 67 
     | 
    
         
            +
            * JRuby >= 1.7.4 (1.9 mode)
         
     | 
| 
      
 68 
     | 
    
         
            +
            * Rubinius >= 2.0.0.w38 (1.9 mode)
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
            Check for compability details on [Travis](https://travis-ci.org/vidmantas/cucumberator)
         
     | 
| 
       61 
71 
     | 
    
         | 
| 
       62 
     | 
    
         
            -
            ##  
     | 
| 
      
 72 
     | 
    
         
            +
            ## Want to contribute?
         
     | 
| 
       63 
73 
     | 
    
         | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
            * refactor Cucumberator::Writer - too fat already
         
     | 
| 
      
 74 
     | 
    
         
            +
            Fork the project, run tests with:
         
     | 
| 
       66 
75 
     | 
    
         | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
      
 76 
     | 
    
         
            +
            	bundle exec cucumber features
         
     | 
| 
       68 
77 
     | 
    
         | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
      
 78 
     | 
    
         
            +
            then code, code, code and provide me a pull request <3
         
     | 
| 
      
 79 
     | 
    
         
            +
            ...Or just fill in a [ticket](https://github.com/vidmantas/cucumberator/issues)
         
     | 
| 
       70 
80 
     | 
    
         | 
| 
       71 
81 
     | 
    
         
             
            ## Sponsors
         
     | 
| 
       72 
82 
     | 
    
         | 
    
        data/cucumberator.gemspec
    CHANGED
    
    | 
         @@ -15,9 +15,13 @@ Gem::Specification.new do |s| 
     | 
|
| 
       15 
15 
     | 
    
         | 
| 
       16 
16 
     | 
    
         
             
              s.files         = `git ls-files`.split("\n")
         
     | 
| 
       17 
17 
     | 
    
         
             
              s.test_files    = `git ls-files -- {test,spec,features}/*`.split("\n")
         
     | 
| 
       18 
     | 
    
         
            -
              s.executables   = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
         
     | 
| 
      
 18 
     | 
    
         
            +
              s.executables   = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
         
     | 
| 
       19 
19 
     | 
    
         
             
              s.require_paths = ["lib"]
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
              s. 
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
      
 21 
     | 
    
         
            +
              s.required_ruby_version = ">= 1.9.3"
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
              s.add_dependency 'cucumber', '> 1.3'
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
              s.add_development_dependency 'aruba', '~> 0.5.3'
         
     | 
| 
      
 26 
     | 
    
         
            +
              s.add_development_dependency 'pry'
         
     | 
| 
       23 
27 
     | 
    
         
             
            end
         
     | 
| 
         @@ -0,0 +1,39 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Feature: step saving
         
     | 
| 
      
 2 
     | 
    
         
            +
              Background:
         
     | 
| 
      
 3 
     | 
    
         
            +
                Given a file named "examples/support/env.rb" with:
         
     | 
| 
      
 4 
     | 
    
         
            +
                  """
         
     | 
| 
      
 5 
     | 
    
         
            +
                  require 'cucumberator'
         
     | 
| 
      
 6 
     | 
    
         
            +
                  """
         
     | 
| 
      
 7 
     | 
    
         
            +
                Given a file named "examples/step_definitions/extra.rb" with:
         
     | 
| 
      
 8 
     | 
    
         
            +
                  """
         
     | 
| 
      
 9 
     | 
    
         
            +
                  When(/I do some magical stuff with '(\w+)'/) do |*args|
         
     | 
| 
      
 10 
     | 
    
         
            +
                    # just example
         
     | 
| 
      
 11 
     | 
    
         
            +
                  end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  """
         
     | 
| 
      
 14 
     | 
    
         
            +
                Given a file named "examples/cucumberize.feature" with:
         
     | 
| 
      
 15 
     | 
    
         
            +
                  """
         
     | 
| 
      
 16 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 17 
     | 
    
         
            +
                    @cucumberize
         
     | 
| 
      
 18 
     | 
    
         
            +
                    Scenario: cucumberize
         
     | 
| 
      
 19 
     | 
    
         
            +
                      When I do some magical stuff with 'apples'
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  """
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
              Scenario: autosave after successfull execution
         
     | 
| 
      
 24 
     | 
    
         
            +
                When I run `cucumber examples/cucumberize.feature` interactively
         
     | 
| 
      
 25 
     | 
    
         
            +
                And I type "When I do some magical stuff with 'chairs'"
         
     | 
| 
      
 26 
     | 
    
         
            +
                And I type "exit"
         
     | 
| 
      
 27 
     | 
    
         
            +
                Then it should pass with:
         
     | 
| 
      
 28 
     | 
    
         
            +
                  """
         
     | 
| 
      
 29 
     | 
    
         
            +
                  Saved `When I do some magical stuff with 'chairs'` to cucumberize.feature
         
     | 
| 
      
 30 
     | 
    
         
            +
                  """
         
     | 
| 
      
 31 
     | 
    
         
            +
                And the file "examples/cucumberize.feature" should contain exactly:
         
     | 
| 
      
 32 
     | 
    
         
            +
                  """
         
     | 
| 
      
 33 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 34 
     | 
    
         
            +
                    @cucumberize
         
     | 
| 
      
 35 
     | 
    
         
            +
                    Scenario: cucumberize
         
     | 
| 
      
 36 
     | 
    
         
            +
                      When I do some magical stuff with 'apples'
         
     | 
| 
      
 37 
     | 
    
         
            +
                      When I do some magical stuff with 'chairs'
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                  """
         
     | 
| 
         @@ -0,0 +1,28 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Feature: exit-all command
         
     | 
| 
      
 2 
     | 
    
         
            +
              Background:
         
     | 
| 
      
 3 
     | 
    
         
            +
                Given a file named "examples/support/env.rb" with:
         
     | 
| 
      
 4 
     | 
    
         
            +
                  """
         
     | 
| 
      
 5 
     | 
    
         
            +
                  require 'cucumberator'
         
     | 
| 
      
 6 
     | 
    
         
            +
                  """
         
     | 
| 
      
 7 
     | 
    
         
            +
                Given a file named "examples/exit_all.feature" with:
         
     | 
| 
      
 8 
     | 
    
         
            +
                  """
         
     | 
| 
      
 9 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 10 
     | 
    
         
            +
                    Scenario: exit-all
         
     | 
| 
      
 11 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 12 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 13 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    Scenario: should be ignored totally
         
     | 
| 
      
 16 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 17 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 18 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  """
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              Scenario: check `exit-all` command
         
     | 
| 
      
 23 
     | 
    
         
            +
                When I run `cucumber examples/exit_all.feature` interactively
         
     | 
| 
      
 24 
     | 
    
         
            +
                And I type "exit-all"
         
     | 
| 
      
 25 
     | 
    
         
            +
                Then it should fail with:
         
     | 
| 
      
 26 
     | 
    
         
            +
                  """
         
     | 
| 
      
 27 
     | 
    
         
            +
                  1 scenario (1 skipped)
         
     | 
| 
      
 28 
     | 
    
         
            +
                  """
         
     | 
| 
         @@ -0,0 +1,31 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Feature: save command
         
     | 
| 
      
 2 
     | 
    
         
            +
              Background:
         
     | 
| 
      
 3 
     | 
    
         
            +
                Given a file named "examples/support/env.rb" with:
         
     | 
| 
      
 4 
     | 
    
         
            +
                  """
         
     | 
| 
      
 5 
     | 
    
         
            +
                  require 'cucumberator'
         
     | 
| 
      
 6 
     | 
    
         
            +
                  """
         
     | 
| 
      
 7 
     | 
    
         
            +
                Given a file named "examples/save.feature" with:
         
     | 
| 
      
 8 
     | 
    
         
            +
                  """
         
     | 
| 
      
 9 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 10 
     | 
    
         
            +
                    Scenario: stop where exit
         
     | 
| 
      
 11 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  """
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              Scenario: check `save` command
         
     | 
| 
      
 16 
     | 
    
         
            +
                When I run `cucumber examples/save.feature` interactively
         
     | 
| 
      
 17 
     | 
    
         
            +
                And I type "When I do something extraordinary"
         
     | 
| 
      
 18 
     | 
    
         
            +
                And I type "save"
         
     | 
| 
      
 19 
     | 
    
         
            +
                And I type "exit"
         
     | 
| 
      
 20 
     | 
    
         
            +
                Then it should pass with:
         
     | 
| 
      
 21 
     | 
    
         
            +
                  """
         
     | 
| 
      
 22 
     | 
    
         
            +
                  Saved `When I do something extraordinary` to save.feature
         
     | 
| 
      
 23 
     | 
    
         
            +
                  """
         
     | 
| 
      
 24 
     | 
    
         
            +
                And the file "examples/save.feature" should contain exactly:
         
     | 
| 
      
 25 
     | 
    
         
            +
                  """
         
     | 
| 
      
 26 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 27 
     | 
    
         
            +
                    Scenario: stop where exit
         
     | 
| 
      
 28 
     | 
    
         
            +
                      When I do something extraordinary
         
     | 
| 
      
 29 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                  """
         
     | 
| 
         @@ -0,0 +1,33 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Feature: help command
         
     | 
| 
      
 2 
     | 
    
         
            +
              Background:
         
     | 
| 
      
 3 
     | 
    
         
            +
                Given a file named "examples/support/env.rb" with:
         
     | 
| 
      
 4 
     | 
    
         
            +
                  """
         
     | 
| 
      
 5 
     | 
    
         
            +
                  require 'cucumberator'
         
     | 
| 
      
 6 
     | 
    
         
            +
                  """
         
     | 
| 
      
 7 
     | 
    
         
            +
                Given a file named "examples/help.feature" with:
         
     | 
| 
      
 8 
     | 
    
         
            +
                  """
         
     | 
| 
      
 9 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 10 
     | 
    
         
            +
                    Scenario: help
         
     | 
| 
      
 11 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  """
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              Scenario: check help command
         
     | 
| 
      
 16 
     | 
    
         
            +
                When I run `cucumber examples/help.feature` interactively
         
     | 
| 
      
 17 
     | 
    
         
            +
                And I type "help"
         
     | 
| 
      
 18 
     | 
    
         
            +
                And I type "exit"
         
     | 
| 
      
 19 
     | 
    
         
            +
                Then it should pass with:
         
     | 
| 
      
 20 
     | 
    
         
            +
                  """
         
     | 
| 
      
 21 
     | 
    
         
            +
                  :: Write a step here and watch it happen on the browser.
         
     | 
| 
      
 22 
     | 
    
         
            +
                  :: Steps are automatically saved unless it raises exception. Use 'save' to force-save it anyway.
         
     | 
| 
      
 23 
     | 
    
         
            +
                  :: Available commands:
         
     | 
| 
      
 24 
     | 
    
         
            +
                  ::   save      - force-saves last step into current feature file
         
     | 
| 
      
 25 
     | 
    
         
            +
                  ::   last-step - display last executed step (to be saved on 'save' command)
         
     | 
| 
      
 26 
     | 
    
         
            +
                  ::   undo      - remove last saved line from feature file
         
     | 
| 
      
 27 
     | 
    
         
            +
                  ::   next      - execute next step and stop
         
     | 
| 
      
 28 
     | 
    
         
            +
                  ::   steps     - display available steps
         
     | 
| 
      
 29 
     | 
    
         
            +
                  ::   where     - display current location in file
         
     | 
| 
      
 30 
     | 
    
         
            +
                  ::   exit      - exits current scenario
         
     | 
| 
      
 31 
     | 
    
         
            +
                  ::   exit-all  - exists whole Cucumber feature
         
     | 
| 
      
 32 
     | 
    
         
            +
                  ::   help      - display this notification
         
     | 
| 
      
 33 
     | 
    
         
            +
                  """
         
     | 
| 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Feature: step saving
         
     | 
| 
      
 2 
     | 
    
         
            +
              Background:
         
     | 
| 
      
 3 
     | 
    
         
            +
                Given a file named "examples/support/env.rb" with:
         
     | 
| 
      
 4 
     | 
    
         
            +
                  """
         
     | 
| 
      
 5 
     | 
    
         
            +
                  require 'cucumberator'
         
     | 
| 
      
 6 
     | 
    
         
            +
                  """
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
              Scenario: last-step display
         
     | 
| 
      
 9 
     | 
    
         
            +
                Given a file named "examples/last_step.feature" with:
         
     | 
| 
      
 10 
     | 
    
         
            +
                  """
         
     | 
| 
      
 11 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 12 
     | 
    
         
            +
                    Scenario: example
         
     | 
| 
      
 13 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  """
         
     | 
| 
      
 16 
     | 
    
         
            +
                When I run `cucumber examples/last_step.feature` interactively
         
     | 
| 
      
 17 
     | 
    
         
            +
                And I type "When new step is executed"
         
     | 
| 
      
 18 
     | 
    
         
            +
                And I type "last-step"
         
     | 
| 
      
 19 
     | 
    
         
            +
                And I type "exit"
         
     | 
| 
      
 20 
     | 
    
         
            +
                Then it should pass with:
         
     | 
| 
      
 21 
     | 
    
         
            +
                  """
         
     | 
| 
      
 22 
     | 
    
         
            +
                  It was: `When new step is executed`
         
     | 
| 
      
 23 
     | 
    
         
            +
                  """
         
     | 
| 
         @@ -0,0 +1,38 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Feature: next
         
     | 
| 
      
 2 
     | 
    
         
            +
              Background:
         
     | 
| 
      
 3 
     | 
    
         
            +
                Given a file named "examples/support/env.rb" with:
         
     | 
| 
      
 4 
     | 
    
         
            +
                  """
         
     | 
| 
      
 5 
     | 
    
         
            +
                  require 'cucumberator'
         
     | 
| 
      
 6 
     | 
    
         
            +
                  """
         
     | 
| 
      
 7 
     | 
    
         
            +
                Given a file named "examples/step_definitions/extra.rb" with:
         
     | 
| 
      
 8 
     | 
    
         
            +
                  """
         
     | 
| 
      
 9 
     | 
    
         
            +
                  When(/I do some magical stuff with '(\w+)'/) do |*args|
         
     | 
| 
      
 10 
     | 
    
         
            +
                    # just example
         
     | 
| 
      
 11 
     | 
    
         
            +
                  end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  """
         
     | 
| 
      
 14 
     | 
    
         
            +
                Given a file named "examples/next.feature" with:
         
     | 
| 
      
 15 
     | 
    
         
            +
                  """
         
     | 
| 
      
 16 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 17 
     | 
    
         
            +
                    Scenario: stop where exit
         
     | 
| 
      
 18 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 19 
     | 
    
         
            +
                      When I do some magical stuff with 'apples'
         
     | 
| 
      
 20 
     | 
    
         
            +
                      When I do some magical stuff with 'oranges'
         
     | 
| 
      
 21 
     | 
    
         
            +
                      When I do some magical stuff with 'bananas'
         
     | 
| 
      
 22 
     | 
    
         
            +
                      When I do some magical stuff with 'water'
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                  """
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
              Scenario: one next
         
     | 
| 
      
 27 
     | 
    
         
            +
                When I run `cucumber examples/next.feature` interactively
         
     | 
| 
      
 28 
     | 
    
         
            +
                And I type "next"
         
     | 
| 
      
 29 
     | 
    
         
            +
                And I type "where"
         
     | 
| 
      
 30 
     | 
    
         
            +
                And I type "exit"
         
     | 
| 
      
 31 
     | 
    
         
            +
                Then it should pass with:
         
     | 
| 
      
 32 
     | 
    
         
            +
                  """
         
     | 
| 
      
 33 
     | 
    
         
            +
                  examples/next.feature:4:in `When I do some magical stuff with 'apples'
         
     | 
| 
      
 34 
     | 
    
         
            +
                  """
         
     | 
| 
      
 35 
     | 
    
         
            +
                And it should pass with:
         
     | 
| 
      
 36 
     | 
    
         
            +
                  """
         
     | 
| 
      
 37 
     | 
    
         
            +
                  4: ->     When I do some magical stuff with 'apples'
         
     | 
| 
      
 38 
     | 
    
         
            +
                  """
         
     | 
| 
         @@ -0,0 +1,88 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Feature: step saving
         
     | 
| 
      
 2 
     | 
    
         
            +
              Background:
         
     | 
| 
      
 3 
     | 
    
         
            +
                Given a file named "examples/support/env.rb" with:
         
     | 
| 
      
 4 
     | 
    
         
            +
                  """
         
     | 
| 
      
 5 
     | 
    
         
            +
                  require 'cucumberator'
         
     | 
| 
      
 6 
     | 
    
         
            +
                  """
         
     | 
| 
      
 7 
     | 
    
         
            +
                Given a file named "examples/step_definitions/extra.rb" with:
         
     | 
| 
      
 8 
     | 
    
         
            +
                  """
         
     | 
| 
      
 9 
     | 
    
         
            +
                  When(/I do some magical stuff with '(\w+)'/) do |*args|
         
     | 
| 
      
 10 
     | 
    
         
            +
                    # just example
         
     | 
| 
      
 11 
     | 
    
         
            +
                  end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  """
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              Scenario: autosave after successfull execution
         
     | 
| 
      
 16 
     | 
    
         
            +
                Given a file named "examples/autosave.feature" with:
         
     | 
| 
      
 17 
     | 
    
         
            +
                  """
         
     | 
| 
      
 18 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 19 
     | 
    
         
            +
                    Scenario: stop where exit
         
     | 
| 
      
 20 
     | 
    
         
            +
                      When I do some magical stuff with 'apples'
         
     | 
| 
      
 21 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                  """
         
     | 
| 
      
 24 
     | 
    
         
            +
                When I run `cucumber examples/autosave.feature` interactively
         
     | 
| 
      
 25 
     | 
    
         
            +
                And I type "When I do some magical stuff with 'chairs'"
         
     | 
| 
      
 26 
     | 
    
         
            +
                And I type "exit"
         
     | 
| 
      
 27 
     | 
    
         
            +
                Then it should pass with:
         
     | 
| 
      
 28 
     | 
    
         
            +
                  """
         
     | 
| 
      
 29 
     | 
    
         
            +
                  Saved `When I do some magical stuff with 'chairs'` to autosave.feature
         
     | 
| 
      
 30 
     | 
    
         
            +
                  """
         
     | 
| 
      
 31 
     | 
    
         
            +
                And the file "examples/autosave.feature" should contain exactly:
         
     | 
| 
      
 32 
     | 
    
         
            +
                  """
         
     | 
| 
      
 33 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 34 
     | 
    
         
            +
                    Scenario: stop where exit
         
     | 
| 
      
 35 
     | 
    
         
            +
                      When I do some magical stuff with 'apples'
         
     | 
| 
      
 36 
     | 
    
         
            +
                      When I do some magical stuff with 'chairs'
         
     | 
| 
      
 37 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                  """
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
              Scenario: autosave for empty line
         
     | 
| 
      
 42 
     | 
    
         
            +
                Given a file named "examples/autosave_nl.feature" with:
         
     | 
| 
      
 43 
     | 
    
         
            +
                  """
         
     | 
| 
      
 44 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 45 
     | 
    
         
            +
                    Scenario: stop where exit
         
     | 
| 
      
 46 
     | 
    
         
            +
                      When I do some magical stuff with 'apples'
         
     | 
| 
      
 47 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                  """
         
     | 
| 
      
 50 
     | 
    
         
            +
                When I run `cucumber examples/autosave_nl.feature` interactively
         
     | 
| 
      
 51 
     | 
    
         
            +
                And I type ""
         
     | 
| 
      
 52 
     | 
    
         
            +
                And I type "exit"
         
     | 
| 
      
 53 
     | 
    
         
            +
                And the file "examples/autosave_nl.feature" should contain exactly:
         
     | 
| 
      
 54 
     | 
    
         
            +
                  """
         
     | 
| 
      
 55 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 56 
     | 
    
         
            +
                    Scenario: stop where exit
         
     | 
| 
      
 57 
     | 
    
         
            +
                      When I do some magical stuff with 'apples'
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                  """
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
              Scenario: explicit save after step failure
         
     | 
| 
      
 64 
     | 
    
         
            +
                Given a file named "examples/autosave_explicit.feature" with:
         
     | 
| 
      
 65 
     | 
    
         
            +
                  """
         
     | 
| 
      
 66 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 67 
     | 
    
         
            +
                    Scenario: stop where exit
         
     | 
| 
      
 68 
     | 
    
         
            +
                      When I do some magical stuff with 'apples'
         
     | 
| 
      
 69 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                  """
         
     | 
| 
      
 72 
     | 
    
         
            +
                When I run `cucumber examples/autosave_explicit.feature` interactively
         
     | 
| 
      
 73 
     | 
    
         
            +
                And I type "When new step is executed"
         
     | 
| 
      
 74 
     | 
    
         
            +
                And I type "save"
         
     | 
| 
      
 75 
     | 
    
         
            +
                And I type "exit"
         
     | 
| 
      
 76 
     | 
    
         
            +
                Then it should pass with:
         
     | 
| 
      
 77 
     | 
    
         
            +
                  """
         
     | 
| 
      
 78 
     | 
    
         
            +
                  Saved `When new step is executed` to autosave_explicit.feature
         
     | 
| 
      
 79 
     | 
    
         
            +
                  """
         
     | 
| 
      
 80 
     | 
    
         
            +
                And the file "examples/autosave_explicit.feature" should contain exactly:
         
     | 
| 
      
 81 
     | 
    
         
            +
                  """
         
     | 
| 
      
 82 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 83 
     | 
    
         
            +
                    Scenario: stop where exit
         
     | 
| 
      
 84 
     | 
    
         
            +
                      When I do some magical stuff with 'apples'
         
     | 
| 
      
 85 
     | 
    
         
            +
                      When new step is executed
         
     | 
| 
      
 86 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
                  """
         
     | 
| 
         @@ -0,0 +1,29 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Feature: stop execution on cucumberator step & exit sucessfully
         
     | 
| 
      
 2 
     | 
    
         
            +
              Scenario: using cucumberator step, but cucumberator not required
         
     | 
| 
      
 3 
     | 
    
         
            +
                Given a file named "examples/simple_hook_test.feature" with:
         
     | 
| 
      
 4 
     | 
    
         
            +
                  """
         
     | 
| 
      
 5 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 6 
     | 
    
         
            +
                    Scenario: stop and exit
         
     | 
| 
      
 7 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 8 
     | 
    
         
            +
                  """
         
     | 
| 
      
 9 
     | 
    
         
            +
                When I run `cucumber examples/simple_hook_test.feature`
         
     | 
| 
      
 10 
     | 
    
         
            +
                Then the output should contain "1 step (1 undefined)"
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              Scenario: using cucumberator step with cucumberator required
         
     | 
| 
      
 13 
     | 
    
         
            +
                Given a file named "examples/simple_hook_test.feature" with:
         
     | 
| 
      
 14 
     | 
    
         
            +
                  """
         
     | 
| 
      
 15 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 16 
     | 
    
         
            +
                    Scenario: stop and exit
         
     | 
| 
      
 17 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 18 
     | 
    
         
            +
                  """
         
     | 
| 
      
 19 
     | 
    
         
            +
                And a file named "examples/support/env.rb" with:
         
     | 
| 
      
 20 
     | 
    
         
            +
                  """
         
     | 
| 
      
 21 
     | 
    
         
            +
                  require 'cucumberator'
         
     | 
| 
      
 22 
     | 
    
         
            +
                  """
         
     | 
| 
      
 23 
     | 
    
         
            +
                When I run `cucumber examples/simple_hook_test.feature` interactively
         
     | 
| 
      
 24 
     | 
    
         
            +
                And I type "exit"
         
     | 
| 
      
 25 
     | 
    
         
            +
                Then it should pass with:
         
     | 
| 
      
 26 
     | 
    
         
            +
                  """
         
     | 
| 
      
 27 
     | 
    
         
            +
                  1 scenario (1 passed)
         
     | 
| 
      
 28 
     | 
    
         
            +
                  1 step (1 passed)
         
     | 
| 
      
 29 
     | 
    
         
            +
                  """
         
     | 
| 
         @@ -0,0 +1,31 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Feature: steps command
         
     | 
| 
      
 2 
     | 
    
         
            +
              Background:
         
     | 
| 
      
 3 
     | 
    
         
            +
                Given a file named "examples/support/env.rb" with:
         
     | 
| 
      
 4 
     | 
    
         
            +
                  """
         
     | 
| 
      
 5 
     | 
    
         
            +
                  require 'cucumberator'
         
     | 
| 
      
 6 
     | 
    
         
            +
                  """
         
     | 
| 
      
 7 
     | 
    
         
            +
                Given a file named "examples/step_definitions/extra.rb" with:
         
     | 
| 
      
 8 
     | 
    
         
            +
                  """
         
     | 
| 
      
 9 
     | 
    
         
            +
                  When(/I do some magical stuff with '(\w+)'/) do |*args|
         
     | 
| 
      
 10 
     | 
    
         
            +
                    # just example
         
     | 
| 
      
 11 
     | 
    
         
            +
                  end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  """
         
     | 
| 
      
 14 
     | 
    
         
            +
                Given a file named "examples/steps.feature" with:
         
     | 
| 
      
 15 
     | 
    
         
            +
                  """
         
     | 
| 
      
 16 
     | 
    
         
            +
                  Feature: example
         
     | 
| 
      
 17 
     | 
    
         
            +
                    Scenario: stop where exit
         
     | 
| 
      
 18 
     | 
    
         
            +
                      Then I will write new steps
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  """
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              Scenario: check `steps` command
         
     | 
| 
      
 23 
     | 
    
         
            +
                When I run `cucumber examples/steps.feature` interactively
         
     | 
| 
      
 24 
     | 
    
         
            +
                And I type "steps"
         
     | 
| 
      
 25 
     | 
    
         
            +
                And I type "exit"
         
     | 
| 
      
 26 
     | 
    
         
            +
                Then it should pass with:
         
     | 
| 
      
 27 
     | 
    
         
            +
                  """
         
     | 
| 
      
 28 
     | 
    
         
            +
                  :: Yay, you have 2 steps in your pocket:
         
     | 
| 
      
 29 
     | 
    
         
            +
                  /^I will write new steps$/
         
     | 
| 
      
 30 
     | 
    
         
            +
                  /I do some magical stuff with '(\w+)'/
         
     | 
| 
      
 31 
     | 
    
         
            +
                  """
         
     |