spinach 0.11.0 → 0.12.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 66296e07e2af7b9daa268623eb0e59ac1e90ee16855a3baf9eb63801be1338d2
4
- data.tar.gz: b2239f90a08a88a7b9c0ca93d16103b816249122c60176ea094405f8d1f8ebf8
3
+ metadata.gz: 13ae199ec9413a41d2f1ea007433f4ca9acf8750811468e320927c55cc6ae80d
4
+ data.tar.gz: 37383a9a6e243a01d113cbe64139ce7119af7c571dcb12589846b8737115ac9e
5
5
  SHA512:
6
- metadata.gz: 909a2ec0656f8991d9ab05a3a26864544da914475de5d8205ada4a20b3041c8cddb81d33319329252a440ec53e32852ff2daf0a0364fe9d87b2c1bff815725c4
7
- data.tar.gz: b08372a0eb16eb49f0ca4972f8a412307ea9cd0eba8eab48c848ff849700bad2dc79444f6eb73d3830ed67941c0ce3efa44803658aa71da453a10fa00fa114c1
6
+ metadata.gz: 16007d35b6d52765c78a9e82e7f08e484d6d8f6ddc8ff4de765472ec11c7e236d6dd92de7cb5e89f8d8bda7ddc042fddbc2480ba92b00793784ca5d2d22c0e12
7
+ data.tar.gz: ff6aad6deac02d61cf3f932afacf62bedb0f16aaa07e415ea1a675c7ac79e815d030ebb86f039e4d726bd5481226f12326c9d9060d0c4f999c820e5226a1a118
@@ -17,15 +17,14 @@ jobs:
17
17
  runs-on: ubuntu-latest
18
18
  strategy:
19
19
  matrix:
20
- ruby: [2.4, 2.5, 2.6, 2.7, jruby]
20
+ ruby: [2.4, 2.5, 2.6, 2.7, "3.0", 3.1, 3.2, jruby]
21
21
  fail-fast: false
22
22
  steps:
23
- - uses: actions/checkout@v2.0.0
23
+ - uses: actions/checkout@v3
24
24
  with:
25
25
  fetch-depth: 1
26
- - uses: ruby/setup-ruby@master
26
+ - uses: ruby/setup-ruby@v1
27
27
  with:
28
28
  ruby-version: ${{ matrix.ruby }}
29
- - run: bundle install --jobs 4 --retry 3
30
- name: Install Ruby deps
29
+ bundler-cache: true
31
30
  - run: bundle exec rake
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.7.1
1
+ 3.2.0
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 3.2.1
data/Gemfile CHANGED
@@ -3,7 +3,6 @@ source 'http://rubygems.org'
3
3
  # Specify your gem's dependencies in spinach.gemspec
4
4
  gemspec
5
5
 
6
- gem 'coveralls', require: false
7
6
  gem 'pry-byebug', platforms: [:ruby]
8
7
 
9
8
  group :docs do
data/README.markdown CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/spinach.svg)](https://badge.fury.io/rb/spinach)
4
4
  ![Tests](https://github.com/codegram/spinach/workflows/Tests/badge.svg)
5
- [![Coverage Status](https://coveralls.io/repos/codegram/spinach/badge.png?branch=master)](https://coveralls.io/r/codegram/spinach)
6
- ![](https://ruby-gem-downloads-badge.herokuapp.com/rails)
7
5
 
8
6
  Spinach is a high-level BDD framework that leverages the expressive
9
7
  [Gherkin language][gherkin] (used by [Cucumber][cucumber]) to help you define
@@ -17,7 +15,7 @@ Conceived as an alternative to Cucumber, here are some of its design goals:
17
15
  - Step reusability: In case you want to reuse steps across features, you can
18
16
  always wrap those in plain ol' Ruby modules.
19
17
 
20
- Spinach is tested against Ruby MRI **2.4, 2.5, 2.6 and 2.7** as well as **latest JRuby 9000**.
18
+ Spinach is tested against Ruby MRI **2.4, 2.5, 2.6, 2.7, 3.0, 3.1, 3.2** as well as **JRuby **.
21
19
 
22
20
  ## Getting started
23
21
 
@@ -238,19 +236,19 @@ Feature: So something great
238
236
  Scenario: Ensure no regression on this
239
237
  ```
240
238
 
241
- Then you can run all Scenarios in your suite related to `@feat-1` using:
239
+ Then you can run all Scenarios in your suite tagged `@feat-1` using:
242
240
 
243
241
  ```shell
244
242
  $ spinach --tags @feat-1
245
243
  ```
246
244
 
247
- Or only Scenarios related to `@feat-1` and `@bug-12` using:
245
+ Or only Scenarios tagged either `@feat-1` or `@bug-12` using:
248
246
 
249
247
  ```shell
250
248
  $ spinach --tags @feat-1,@bug-12
251
249
  ```
252
250
 
253
- Or only Scenarios related to `@feat-1` excluding `@bug-12` using:
251
+ Or only Scenarios tagged `@feat-1` that aren't tagged `@bug-12` using:
254
252
 
255
253
  ```shell
256
254
  $ spinach --tags @feat-1,~@bug-12
@@ -380,7 +378,7 @@ You can easily contribute to Spinach. Its codebase is simple and
380
378
 
381
379
  ## License
382
380
 
383
- MIT (Expat) License. Copyright 2011-2016 [Codegram Technologies](http://codegram.com)
381
+ MIT (Expat) License. Copyright 2011-2023 [Codegram Technologies](http://codegram.com)
384
382
 
385
383
  [gherkin]: http://github.com/codegram/gherkin-ruby
386
384
  [cucumber]: http://github.com/cucumber/cucumber
data/bin/spinach CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  begin
4
- require "bundler/setup"
4
+ require "bundler/setup"
5
5
  rescue LoadError
6
6
  end
7
7
 
@@ -0,0 +1,22 @@
1
+ Feature: Feature Hooks and Tags
2
+ In order to run only the appropriate setup and teardown code
3
+ As a developer
4
+ I want spinach to only run feature hooks if those features would be run under the tags I provided
5
+
6
+ Scenario: No tags specified
7
+ Given I have a tagged feature with an untagged scenario
8
+ And I have an untagged feature with a tagged scenario
9
+ When I don't specify tags
10
+ Then all the feature hooks should have run
11
+
12
+ Scenario: Tags specified
13
+ Given I have a tagged feature with an untagged scenario
14
+ And I have an untagged feature with a tagged scenario
15
+ When I specify a tag the features and scenarios are tagged with
16
+ Then all the feature hooks should have run
17
+
18
+ Scenario: Tags excluded
19
+ Given I have a tagged feature with an untagged scenario
20
+ And I have an untagged feature with a tagged scenario
21
+ When I exclude a tag the features and scenarios are tagged with
22
+ Then no feature hooks should have run
@@ -20,7 +20,7 @@ Feature: Cheezburger can I has
20
20
  Then 'I a feature should exist named "features/steps/cheezburger_can_i_has.rb"' do
21
21
  in_current_dir do
22
22
  @file = 'features/steps/cheezburger_can_i_has.rb'
23
- File.exists?(@file).must_equal true
23
+ File.exist?(@file).must_equal true
24
24
  end
25
25
  end
26
26
 
@@ -0,0 +1,55 @@
1
+ class Spinach::Features::FeatureHooksAndTags < Spinach::FeatureSteps
2
+ include Integration::SpinachRunner
3
+
4
+ step 'I have a tagged feature with an untagged scenario' do
5
+ write_file 'features/a.feature', <<-FEATURE
6
+ @tag
7
+ Feature: A
8
+ Scenario: A1
9
+ Then a1
10
+ FEATURE
11
+
12
+ write_file 'features/steps/a.rb', <<-STEPS
13
+ class Spinach::Features::A < Spinach::FeatureSteps
14
+ step 'a1' do; end
15
+ end
16
+ STEPS
17
+ end
18
+
19
+ step 'I have an untagged feature with a tagged scenario' do
20
+ write_file 'features/b.feature', <<-FEATURE
21
+ Feature: B
22
+ @tag
23
+ Scenario: B1
24
+ Then b1
25
+ FEATURE
26
+
27
+ write_file 'features/steps/b.rb', <<-STEPS
28
+ class Spinach::Features::B < Spinach::FeatureSteps
29
+ step 'b1' do; end
30
+ end
31
+ STEPS
32
+ end
33
+
34
+ step "I don't specify tags" do
35
+ run_spinach
36
+ end
37
+
38
+ step 'I specify a tag the features and scenarios are tagged with' do
39
+ run_spinach({append: "--tags @tag"})
40
+ end
41
+
42
+ step 'I exclude a tag the features and scenarios are tagged with' do
43
+ run_spinach({append: "--tags ~@tag"})
44
+ end
45
+
46
+ step 'all the feature hooks should have run' do
47
+ @stdout.must_match("Feature: A")
48
+ @stdout.must_match("Feature: B")
49
+ end
50
+
51
+ step 'no feature hooks should have run' do
52
+ @stdout.wont_match("Feature: A")
53
+ @stdout.wont_match("Feature: B")
54
+ end
55
+ end
@@ -1,19 +1,6 @@
1
1
  require 'minitest/autorun'
2
2
  require 'minitest/spec'
3
3
  require_relative 'filesystem'
4
- require 'simplecov'
5
-
6
- if ENV['CI'] && !defined?(Rubinius)
7
- require 'coveralls'
8
- SimpleCov.formatter = Coveralls::SimpleCov::Formatter
9
- require 'simplecov'
10
-
11
- SimpleCov.start do
12
- add_filter '/test/'
13
- add_filter '/features/'
14
- end
15
- end
16
-
17
4
 
18
5
  Spinach.hooks.after_scenario do |scenario|
19
6
  FileUtils.rm_rf(Filesystem.dirs)
data/lib/spinach/cli.rb CHANGED
@@ -56,7 +56,7 @@ module Spinach
56
56
 
57
57
  @args.each do |arg|
58
58
  if arg.match(/\.feature/)
59
- if File.exists? arg.gsub(/:\d*/, '')
59
+ if File.exist? arg.gsub(/:\d*/, '')
60
60
  files_to_run << arg
61
61
  else
62
62
  fail! "#{arg} could not be found"
@@ -151,7 +151,7 @@ module Spinach
151
151
  end
152
152
 
153
153
  def features_to_run
154
- unordered_features = filenames.map do |filename|
154
+ unordered_features = filenames.reduce([]) do |features, filename|
155
155
  file, *lines = filename.split(":") # little more complex than just a "filename"
156
156
 
157
157
  # FIXME Feature should be instantiated directly, not through an unrelated class method
@@ -160,7 +160,9 @@ module Spinach
160
160
 
161
161
  feature.lines_to_run = lines if lines.any?
162
162
 
163
- feature
163
+ features << feature if TagsMatcher.match_feature(feature)
164
+
165
+ features
164
166
  end
165
167
 
166
168
  orderer.order(unordered_features)
@@ -6,9 +6,9 @@ module Spinach
6
6
  class << self
7
7
 
8
8
  # Matches an array of tags (e.g. of a scenario) against the tags present
9
- # in Spinach' runtime options.
9
+ # in Spinach's runtime options.
10
10
  #
11
- # Spinach' tag option is an array which consists of (possibly) multiple
11
+ # Spinach's tag option is an array which consists of (possibly) multiple
12
12
  # arrays containing tags provided by the user running the features and
13
13
  # scenarios. Each of these arrays is considered a tag group.
14
14
  #
@@ -23,6 +23,15 @@ module Spinach
23
23
  }
24
24
  end
25
25
 
26
+ # Matches the tags of a feature (and its scenarios) against the tags present
27
+ # in Spinach's runtime options.
28
+ #
29
+ # A feature matches when, for any of its scenarios, the combination of the
30
+ # feature's tags and that scenario's tags match the configured tags.
31
+ def match_feature(feature)
32
+ feature.scenarios.any? { |scenario| match(feature.tags + scenario.tags) }
33
+ end
34
+
26
35
  private
27
36
 
28
37
  def tag_groups
@@ -1,4 +1,4 @@
1
1
  module Spinach
2
2
  # Spinach version.
3
- VERSION = "0.11.0"
3
+ VERSION = "0.12.0"
4
4
  end
data/spinach.gemspec CHANGED
@@ -3,8 +3,7 @@ require File.expand_path('../lib/spinach/version', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
5
  gem.authors = ["Josep Jaume Rey", "Josep M. Bach", "Oriol Gual", "Marc Divins Castellvi"]
6
- gem.email = ["info@codegram.com", "josep.m.bach@gmail.com",
7
- "oriolgual@gmail.com", "josepjaume@gmail.com", "marcdivc@gmail.com"]
6
+ gem.email = ["josep.m.bach@gmail.com", "oriolgual@gmail.com", "josepjaume@gmail.com", "marcdivc@gmail.com"]
8
7
  gem.description = %q{Spinach is a BDD framework on top of gherkin}
9
8
  gem.summary = %q{Spinach is a BDD framework on top of gherkin}
10
9
  gem.homepage = "http://github.com/codegram/spinach"
@@ -12,13 +11,11 @@ Gem::Specification.new do |gem|
12
11
 
13
12
  gem.add_runtime_dependency 'gherkin-ruby', '>= 0.3.2'
14
13
  gem.add_runtime_dependency 'colorize'
15
- gem.add_runtime_dependency 'json'
16
14
  gem.add_development_dependency 'rake'
17
15
  gem.add_development_dependency 'mocha', "~> 1.5.0"
18
16
  gem.add_development_dependency 'sinatra'
19
17
  gem.add_development_dependency 'capybara'
20
18
  gem.add_development_dependency 'pry'
21
- gem.add_development_dependency 'simplecov'
22
19
  gem.add_development_dependency 'rspec'
23
20
  gem.add_development_dependency 'minitest', '< 5.0'
24
21
  gem.add_development_dependency 'fakefs', ">= 0.5.2"
@@ -276,14 +276,14 @@ tags:
276
276
  describe 'the feature really exists' do
277
277
  it 'runs the feature' do
278
278
  cli = Spinach::Cli.new(['features/some_feature.feature'])
279
- File.stubs(:exists?).returns(true)
279
+ File.stubs(:exist?).returns(true)
280
280
  cli.feature_files.must_equal ['features/some_feature.feature']
281
281
  end
282
282
  end
283
283
 
284
284
  it 'it fails if the feature does not exist' do
285
285
  cli = Spinach::Cli.new(['features/some_feature.feature'])
286
- File.stubs(:exists?).returns(false)
286
+ File.stubs(:exist?).returns(false)
287
287
  cli.expects(:fail!).with('features/some_feature.feature could not be found')
288
288
 
289
289
  cli.feature_files
@@ -293,7 +293,7 @@ tags:
293
293
  describe 'when a particular feature list is passed with line' do
294
294
  it 'returns the feature with the line number' do
295
295
  cli = Spinach::Cli.new(['features/some_feature.feature:10'])
296
- File.stubs(:exists?).returns(true)
296
+ File.stubs(:exist?).returns(true)
297
297
 
298
298
  cli.feature_files.must_equal ['features/some_feature.feature:10']
299
299
  end
@@ -302,7 +302,7 @@ tags:
302
302
  describe "when a particular feature list is passed with multiple lines" do
303
303
  it "returns the feature with the line numbers" do
304
304
  cli = Spinach::Cli.new(['features/some_feature.feature:10:20'])
305
- File.stubs(:exists?).returns(true)
305
+ File.stubs(:exist?).returns(true)
306
306
 
307
307
  cli.feature_files.must_equal ["features/some_feature.feature:10:20"]
308
308
  end
@@ -337,7 +337,7 @@ tags:
337
337
  Dir.expects(:glob).with('path/to/features/**/*.feature')
338
338
  .returns(['several features'])
339
339
 
340
- File.stubs(:exists?).returns(true)
340
+ File.stubs(:exist?).returns(true)
341
341
 
342
342
  cli.feature_files.must_equal ['several features', 'some_feature.feature']
343
343
  end
@@ -157,7 +157,7 @@ describe Spinach::DSL do
157
157
  end
158
158
 
159
159
  @feature.new.step_location_for('I say goodbye').first.must_include '/dsl_test.rb'
160
- @feature.new.step_location_for('I say goodbye').last.must_be_kind_of Fixnum
160
+ @feature.new.step_location_for('I say goodbye').last.must_be_kind_of Integer
161
161
  end
162
162
  end
163
163
  end
@@ -71,7 +71,7 @@ Feature: Cheezburger can I has
71
71
  in_current_dir do
72
72
  subject.store
73
73
  File.directory?("features/steps/").must_equal true
74
- File.exists?("features/steps/cheezburger_can_i_has.rb").must_equal true
74
+ File.exist?("features/steps/cheezburger_can_i_has.rb").must_equal true
75
75
  File.read("features/steps/cheezburger_can_i_has.rb").strip.must_equal(
76
76
  subject.generate.strip
77
77
  )
@@ -89,8 +89,8 @@ module Spinach
89
89
 
90
90
  it "binds a callback around every scenario" do
91
91
  @reporter.expects(:around_scenario_run)
92
- Spinach.hooks.run_around_scenario(anything) do
93
- yield
92
+ Spinach.hooks.run_around_scenario(anything) do |&block|
93
+ block.call
94
94
  end
95
95
  end
96
96
 
@@ -77,15 +77,21 @@ describe Spinach::Runner do
77
77
  describe '#run' do
78
78
  before(:each) do
79
79
  @feature_runner = stub
80
+ @feature_runner.stubs(:run).returns(true)
81
+
80
82
  filenames.each do |filename|
81
- Spinach::Parser.stubs(:open_file).with(filename).returns parser = stub
82
- parser.stubs(:parse).returns feature = Spinach::Feature.new
83
+ parser = stub
84
+ Spinach::Parser.stubs(:open_file).with(filename).returns(parser)
85
+
86
+ feature = Spinach::Feature.new
87
+ feature.scenarios << Spinach::Scenario.new(feature)
88
+ parser.stubs(:parse).returns(feature)
89
+
83
90
  Spinach::Runner::FeatureRunner.stubs(:new).
84
91
  with(feature, anything).
85
92
  returns(@feature_runner)
86
93
  end
87
94
 
88
- @feature_runner.stubs(:run).returns(true)
89
95
  runner.stubs(required_files: [])
90
96
  end
91
97
 
@@ -133,12 +139,18 @@ describe Spinach::Runner do
133
139
  let(:runner) { Spinach::Runner.new(filenames) }
134
140
 
135
141
  before(:each) do
142
+ parser = stub
143
+ Spinach::Parser.stubs(:open_file).with(filename).returns(parser)
144
+
145
+ @feature = Spinach::Feature.new
146
+ @feature.scenarios << Spinach::Scenario.new(@feature)
147
+ parser.stubs(:parse).returns(@feature)
148
+
136
149
  @feature_runner = stub
137
- Spinach::Parser.stubs(:open_file).with(filename).returns parser = stub
138
- parser.stubs(:parse).returns @feature = Spinach::Feature.new
139
150
  Spinach::Runner::FeatureRunner.stubs(:new).
140
151
  with(@feature, anything).
141
152
  returns(@feature_runner)
153
+
142
154
  runner.stubs(required_files: [])
143
155
  end
144
156
 
@@ -174,8 +186,13 @@ describe Spinach::Runner do
174
186
 
175
187
  before(:each) do
176
188
  filenames.each_with_index do |filename, i|
177
- Spinach::Parser.stubs(:open_file).with(filename).returns parser = stub
178
- parser.stubs(:parse).returns feature = Spinach::Feature.new
189
+ parser = stub
190
+ Spinach::Parser.stubs(:open_file).with(filename).returns(parser)
191
+
192
+ feature = Spinach::Feature.new
193
+ feature.scenarios << Spinach::Scenario.new(feature)
194
+ parser.stubs(:parse).returns(feature)
195
+
179
196
  Spinach::Runner::FeatureRunner.stubs(:new).
180
197
  with(feature, anything).
181
198
  returns(feature_runners[i])
data/test/test_helper.rb CHANGED
@@ -1,16 +1,3 @@
1
- require 'simplecov'
2
- require 'coveralls'
3
-
4
- SimpleCov.formatter = Coveralls::SimpleCov::Formatter
5
- if ENV['CI'] && !defined?(Rubinius)
6
- require 'simplecov'
7
-
8
- SimpleCov.start do
9
- add_filter '/test/'
10
- add_filter '/features/'
11
- end
12
- end
13
-
14
1
  require 'minitest/autorun'
15
2
  require 'minitest/spec'
16
3
  require 'mocha/minitest'
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spinach
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey
8
8
  - Josep M. Bach
9
9
  - Oriol Gual
10
10
  - Marc Divins Castellvi
11
- autorequire:
11
+ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-04-20 00:00:00.000000000 Z
14
+ date: 2023-02-09 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: gherkin-ruby
@@ -41,20 +41,6 @@ dependencies:
41
41
  - - ">="
42
42
  - !ruby/object:Gem::Version
43
43
  version: '0'
44
- - !ruby/object:Gem::Dependency
45
- name: json
46
- requirement: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: '0'
51
- type: :runtime
52
- prerelease: false
53
- version_requirements: !ruby/object:Gem::Requirement
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- version: '0'
58
44
  - !ruby/object:Gem::Dependency
59
45
  name: rake
60
46
  requirement: !ruby/object:Gem::Requirement
@@ -125,20 +111,6 @@ dependencies:
125
111
  - - ">="
126
112
  - !ruby/object:Gem::Version
127
113
  version: '0'
128
- - !ruby/object:Gem::Dependency
129
- name: simplecov
130
- requirement: !ruby/object:Gem::Requirement
131
- requirements:
132
- - - ">="
133
- - !ruby/object:Gem::Version
134
- version: '0'
135
- type: :development
136
- prerelease: false
137
- version_requirements: !ruby/object:Gem::Requirement
138
- requirements:
139
- - - ">="
140
- - !ruby/object:Gem::Version
141
- version: '0'
142
114
  - !ruby/object:Gem::Dependency
143
115
  name: rspec
144
116
  requirement: !ruby/object:Gem::Requirement
@@ -183,7 +155,6 @@ dependencies:
183
155
  version: 0.5.2
184
156
  description: Spinach is a BDD framework on top of gherkin
185
157
  email:
186
- - info@codegram.com
187
158
  - josep.m.bach@gmail.com
188
159
  - oriolgual@gmail.com
189
160
  - josepjaume@gmail.com
@@ -198,6 +169,7 @@ files:
198
169
  - ".gitignore"
199
170
  - ".ruby-gemset"
200
171
  - ".ruby-version"
172
+ - ".tool-versions"
201
173
  - CHANGELOG.md
202
174
  - Gemfile
203
175
  - Guardfile
@@ -211,6 +183,7 @@ files:
211
183
  - features/before_and_after_hooks_inheritance.feature
212
184
  - features/exit_status.feature
213
185
  - features/fail_fast.feature
186
+ - features/feature_hooks_and_tags.feature
214
187
  - features/feature_name_guessing.feature
215
188
  - features/pending_steps.feature
216
189
  - features/randomization.feature
@@ -229,6 +202,7 @@ files:
229
202
  - features/steps/before_and_after_hooks_inheritance.rb
230
203
  - features/steps/exit_status.rb
231
204
  - features/steps/fail_fast_option.rb
205
+ - features/steps/feature_hooks_and_tags.rb
232
206
  - features/steps/feature_name_guessing.rb
233
207
  - features/steps/pending_steps.rb
234
208
  - features/steps/randomizing_features_scenarios.rb
@@ -321,7 +295,7 @@ homepage: http://github.com/codegram/spinach
321
295
  licenses:
322
296
  - MIT
323
297
  metadata: {}
324
- post_install_message:
298
+ post_install_message:
325
299
  rdoc_options: []
326
300
  require_paths:
327
301
  - lib
@@ -336,8 +310,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
336
310
  - !ruby/object:Gem::Version
337
311
  version: '0'
338
312
  requirements: []
339
- rubygems_version: 3.0.3
340
- signing_key:
313
+ rubygems_version: 3.4.6
314
+ signing_key:
341
315
  specification_version: 4
342
316
  summary: Spinach is a BDD framework on top of gherkin
343
317
  test_files:
@@ -347,6 +321,7 @@ test_files:
347
321
  - features/before_and_after_hooks_inheritance.feature
348
322
  - features/exit_status.feature
349
323
  - features/fail_fast.feature
324
+ - features/feature_hooks_and_tags.feature
350
325
  - features/feature_name_guessing.feature
351
326
  - features/pending_steps.feature
352
327
  - features/randomization.feature
@@ -365,6 +340,7 @@ test_files:
365
340
  - features/steps/before_and_after_hooks_inheritance.rb
366
341
  - features/steps/exit_status.rb
367
342
  - features/steps/fail_fast_option.rb
343
+ - features/steps/feature_hooks_and_tags.rb
368
344
  - features/steps/feature_name_guessing.rb
369
345
  - features/steps/pending_steps.rb
370
346
  - features/steps/randomizing_features_scenarios.rb