howitzer 2.0.1 → 2.0.2
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/.rubocop.yml +6 -0
- data/.travis.yml +4 -3
- data/CHANGELOG.md +18 -1
- data/Gemfile +1 -1
- data/README.md +3 -1
- data/Rakefile +1 -1
- data/bin/howitzer +3 -3
- data/features/cli_new.feature +2 -0
- data/generators/config/templates/capybara.rb +13 -11
- data/generators/config/templates/default.yml +2 -0
- data/generators/cucumber/cucumber_generator.rb +2 -1
- data/generators/cucumber/templates/cuke_sniffer.rake +21 -0
- data/generators/cucumber/templates/env.rb +6 -0
- data/generators/root/templates/Gemfile.erb +1 -0
- data/generators/rspec/templates/spec_helper.rb +2 -1
- data/generators/turnip/templates/spec_helper.rb +2 -1
- data/howitzer.gemspec +2 -1
- data/lib/howitzer.rb +1 -0
- data/lib/howitzer/capybara_helpers.rb +1 -1
- data/lib/howitzer/exceptions.rb +1 -0
- data/lib/howitzer/version.rb +1 -1
- data/lib/howitzer/web/capybara_methods_proxy.rb +26 -1
- data/lib/howitzer/web/element_dsl.rb +16 -3
- data/lib/howitzer/web/iframe_dsl.rb +34 -17
- data/lib/howitzer/web/page.rb +1 -0
- data/lib/howitzer/web/page_dsl.rb +2 -1
- data/lib/howitzer/web/page_validator.rb +5 -1
- data/spec/spec_helper.rb +1 -2
- data/spec/support/shared_examples/capybara_methods_proxy.rb +8 -8
- data/spec/support/shared_examples/dynamic_section_methods.rb +4 -4
- data/spec/support/shared_examples/element_dsl.rb +66 -53
- data/spec/unit/generators/cucumber_generator_spec.rb +8 -2
- data/spec/unit/lib/cache_spec.rb +1 -1
- data/spec/unit/lib/mailgun_api/client_spec.rb +6 -6
- data/spec/unit/lib/web/iframe_dsl_spec.rb +67 -22
- data/spec/unit/lib/web/page_spec.rb +25 -25
- data/spec/unit/lib/web/page_validator_spec.rb +37 -22
- data/spec/unit/lib/web/section_dsl_spec.rb +3 -3
- metadata +20 -5
@@ -19,7 +19,7 @@ RSpec.describe Howitzer::Web::Page do
|
|
19
19
|
.with("Open #{described_class} page by '#{url_value}' url").once.ordered
|
20
20
|
expect(described_class).to receive(:retryable).ordered.once.and_call_original
|
21
21
|
expect(session).to receive(:visit).with(url_value).once.ordered
|
22
|
-
expect(described_class).to receive(:given).once.ordered
|
22
|
+
expect(described_class).to receive(:given).once.ordered.and_return(true)
|
23
23
|
expect(subject).to eq(true)
|
24
24
|
end
|
25
25
|
end
|
@@ -33,7 +33,7 @@ RSpec.describe Howitzer::Web::Page do
|
|
33
33
|
.with("Open #{described_class} page by '#{url_value}' url").once.ordered
|
34
34
|
expect(described_class).to receive(:retryable).ordered.once.and_call_original
|
35
35
|
expect(session).to receive(:visit).with(url_value).once.ordered
|
36
|
-
expect(described_class).to receive(:given).once.ordered
|
36
|
+
expect(described_class).to receive(:given).once.ordered.and_return(true)
|
37
37
|
expect(subject).to eq(true)
|
38
38
|
end
|
39
39
|
end
|
@@ -41,12 +41,12 @@ RSpec.describe Howitzer::Web::Page do
|
|
41
41
|
let(:url_value) { 'http://example.com/users' }
|
42
42
|
subject { described_class.open }
|
43
43
|
it do
|
44
|
-
expect(described_class).to receive(:expanded_url).with({}, nil)
|
44
|
+
expect(described_class).to receive(:expanded_url).with({}, nil).and_return(url_value).once.ordered
|
45
45
|
expect(Howitzer::Log).to receive(:info)
|
46
46
|
.with("Open #{described_class} page by '#{url_value}' url").once.ordered
|
47
47
|
expect(described_class).to receive(:retryable).ordered.once.and_call_original
|
48
48
|
expect(session).to receive(:visit).with(url_value).once.ordered
|
49
|
-
expect(described_class).to receive(:given).once.ordered
|
49
|
+
expect(described_class).to receive(:given).once.ordered.and_return(true)
|
50
50
|
expect(subject).to eq(true)
|
51
51
|
end
|
52
52
|
end
|
@@ -55,7 +55,7 @@ RSpec.describe Howitzer::Web::Page do
|
|
55
55
|
let(:url_value) { 'http://example.com/users' }
|
56
56
|
subject { described_class.open(validate: false) }
|
57
57
|
it do
|
58
|
-
expect(described_class).to receive(:expanded_url).with({}, nil)
|
58
|
+
expect(described_class).to receive(:expanded_url).with({}, nil).and_return(url_value).once.ordered
|
59
59
|
expect(Howitzer::Log).to receive(:info).with("Open #{described_class} page by '#{url_value}' url").once.ordered
|
60
60
|
expect(described_class).to receive(:retryable).ordered.once.and_call_original
|
61
61
|
expect(session).to receive(:visit).with(url_value).once.ordered
|
@@ -67,11 +67,11 @@ RSpec.describe Howitzer::Web::Page do
|
|
67
67
|
let(:url_value) { 'http://example.com/users/1' }
|
68
68
|
subject { described_class.open(validate: true, id: 1) }
|
69
69
|
it do
|
70
|
-
expect(described_class).to receive(:expanded_url).with({ id: 1 }, nil)
|
70
|
+
expect(described_class).to receive(:expanded_url).with({ id: 1 }, nil).and_return(url_value).once.ordered
|
71
71
|
expect(Howitzer::Log).to receive(:info).with("Open #{described_class} page by '#{url_value}' url").once.ordered
|
72
72
|
expect(described_class).to receive(:retryable).ordered.once.and_call_original
|
73
73
|
expect(session).to receive(:visit).with(url_value).once.ordered
|
74
|
-
expect(described_class).to receive(:given).once.ordered
|
74
|
+
expect(described_class).to receive(:given).once.ordered.and_return(true)
|
75
75
|
expect(subject).to eq(true)
|
76
76
|
end
|
77
77
|
end
|
@@ -81,7 +81,7 @@ RSpec.describe Howitzer::Web::Page do
|
|
81
81
|
subject { described_class.given }
|
82
82
|
before do
|
83
83
|
expect(described_class).to receive(:displayed?).with(no_args).once
|
84
|
-
expect(described_class).to receive(:instance)
|
84
|
+
expect(described_class).to receive(:instance).and_return(true)
|
85
85
|
end
|
86
86
|
it { is_expected.to be_truthy }
|
87
87
|
end
|
@@ -90,8 +90,8 @@ RSpec.describe Howitzer::Web::Page do
|
|
90
90
|
let(:page) { double }
|
91
91
|
subject { described_class.instance.title }
|
92
92
|
before do
|
93
|
-
allow_any_instance_of(described_class).to receive(:check_validations_are_defined!)
|
94
|
-
allow(session).to receive(:current_url)
|
93
|
+
allow_any_instance_of(described_class).to receive(:check_validations_are_defined!).and_return(true)
|
94
|
+
allow(session).to receive(:current_url).and_return('google.com')
|
95
95
|
end
|
96
96
|
it do
|
97
97
|
expect(session).to receive(:title)
|
@@ -102,17 +102,17 @@ RSpec.describe Howitzer::Web::Page do
|
|
102
102
|
describe '.current_page' do
|
103
103
|
subject { described_class.current_page }
|
104
104
|
context 'when matched_pages has no pages' do
|
105
|
-
before { allow(described_class).to receive(:matched_pages)
|
105
|
+
before { allow(described_class).to receive(:matched_pages).and_return([]) }
|
106
106
|
it { is_expected.to eq(described_class::UnknownPage) }
|
107
107
|
end
|
108
108
|
context 'when matched_pages has more than 1 page' do
|
109
109
|
let(:foo_page) { double(inspect: 'FooPage') }
|
110
110
|
let(:bar_page) { double(inspect: 'BarPage') }
|
111
111
|
before do
|
112
|
-
allow_any_instance_of(described_class).to receive(:check_validations_are_defined!)
|
113
|
-
allow(session).to receive(:current_url)
|
112
|
+
allow_any_instance_of(described_class).to receive(:check_validations_are_defined!).and_return(true)
|
113
|
+
allow(session).to receive(:current_url).and_return('http://test.com')
|
114
114
|
allow(session).to receive(:title) { 'Test site' }
|
115
|
-
allow(described_class).to receive(:matched_pages)
|
115
|
+
allow(described_class).to receive(:matched_pages).and_return([foo_page, bar_page])
|
116
116
|
end
|
117
117
|
it do
|
118
118
|
expect { subject }.to raise_error(
|
@@ -124,7 +124,7 @@ RSpec.describe Howitzer::Web::Page do
|
|
124
124
|
end
|
125
125
|
context 'when matched_pages has only 1 page' do
|
126
126
|
let(:foo_page) { double(to_s: 'FooPage') }
|
127
|
-
before { allow(described_class).to receive(:matched_pages)
|
127
|
+
before { allow(described_class).to receive(:matched_pages).and_return([foo_page]) }
|
128
128
|
it { is_expected.to eq(foo_page) }
|
129
129
|
end
|
130
130
|
end
|
@@ -132,15 +132,15 @@ RSpec.describe Howitzer::Web::Page do
|
|
132
132
|
describe '.displayed?' do
|
133
133
|
subject { described_class.displayed? }
|
134
134
|
context 'when page is opened' do
|
135
|
-
before { allow(described_class).to receive(:opened?)
|
135
|
+
before { allow(described_class).to receive(:opened?).and_return(true) }
|
136
136
|
it { is_expected.to eq(true) }
|
137
137
|
end
|
138
138
|
context 'when page is not opened' do
|
139
139
|
before do
|
140
|
-
allow(described_class).to receive(:current_page)
|
141
|
-
allow(session).to receive(:current_url)
|
142
|
-
allow(session).to receive(:title)
|
143
|
-
allow(described_class).to receive(:opened?)
|
140
|
+
allow(described_class).to receive(:current_page).and_return('FooPage')
|
141
|
+
allow(session).to receive(:current_url).and_return('http://test.com')
|
142
|
+
allow(session).to receive(:title).and_return('Test site')
|
143
|
+
allow(described_class).to receive(:opened?).and_return(false)
|
144
144
|
end
|
145
145
|
it do
|
146
146
|
expect { subject }.to raise_error(
|
@@ -153,7 +153,7 @@ RSpec.describe Howitzer::Web::Page do
|
|
153
153
|
end
|
154
154
|
|
155
155
|
describe '.current_url' do
|
156
|
-
before { allow(Capybara).to receive_message_chain(:current_session, :current_url)
|
156
|
+
before { allow(Capybara).to receive_message_chain(:current_session, :current_url).and_return('http://example.com') }
|
157
157
|
it 'should return current url page' do
|
158
158
|
expect(Howitzer::Web::Page.current_url).to eq('http://example.com')
|
159
159
|
end
|
@@ -286,7 +286,7 @@ RSpec.describe Howitzer::Web::Page do
|
|
286
286
|
describe '#initialize' do
|
287
287
|
subject { described_class.send(:new) }
|
288
288
|
before do
|
289
|
-
expect_any_instance_of(described_class).to receive(:check_validations_are_defined!).once
|
289
|
+
expect_any_instance_of(described_class).to receive(:check_validations_are_defined!).once.and_return(true)
|
290
290
|
end
|
291
291
|
context 'when maximized_window is true' do
|
292
292
|
let(:driver) { double }
|
@@ -317,10 +317,10 @@ RSpec.describe Howitzer::Web::Page do
|
|
317
317
|
subject { described_class.instance.reload }
|
318
318
|
let(:visit) { double }
|
319
319
|
before do
|
320
|
-
allow(session).to receive(:current_url)
|
320
|
+
allow(session).to receive(:current_url).and_return('google.com')
|
321
321
|
end
|
322
322
|
it do
|
323
|
-
expect(Howitzer::Log).to receive(:info)
|
323
|
+
expect(Howitzer::Log).to receive(:info).and_return("Reload 'google.com'")
|
324
324
|
expect(session).to receive(:visit).with('google.com')
|
325
325
|
subject
|
326
326
|
end
|
@@ -328,7 +328,7 @@ RSpec.describe Howitzer::Web::Page do
|
|
328
328
|
|
329
329
|
describe '#capybara_context' do
|
330
330
|
subject { described_class.instance.capybara_context }
|
331
|
-
before { expect(Capybara).to receive(:current_session)
|
331
|
+
before { expect(Capybara).to receive(:current_session).and_return(:context) }
|
332
332
|
it { is_expected.to eq(:context) }
|
333
333
|
end
|
334
334
|
|
@@ -11,6 +11,8 @@ RSpec.describe Howitzer::Web::PageValidator do
|
|
11
11
|
Class.new do
|
12
12
|
include Howitzer::Web::ElementDsl
|
13
13
|
include Howitzer::Web::PageValidator
|
14
|
+
element :foo, 'a'
|
15
|
+
element :bar, :xpath, ->(v) { v }
|
14
16
|
def self.name
|
15
17
|
'TestWebPageClass'
|
16
18
|
end
|
@@ -42,14 +44,14 @@ RSpec.describe Howitzer::Web::PageValidator do
|
|
42
44
|
context 'when element_presence validation is specified' do
|
43
45
|
context 'when simple selector' do
|
44
46
|
before do
|
45
|
-
web_page.class.validate :element_presence, :
|
47
|
+
web_page.class.validate :element_presence, :foo
|
46
48
|
end
|
47
49
|
it { expect { subject }.to_not raise_error }
|
48
50
|
end
|
49
51
|
|
50
52
|
context 'when lambda selector' do
|
51
53
|
before do
|
52
|
-
web_page.class.validate :element_presence, :
|
54
|
+
web_page.class.validate :element_presence, :bar, 'some_text'
|
53
55
|
end
|
54
56
|
it { expect { subject }.to_not raise_error }
|
55
57
|
end
|
@@ -66,13 +68,13 @@ RSpec.describe Howitzer::Web::PageValidator do
|
|
66
68
|
context 'as string' do
|
67
69
|
let(:name) { 'url' }
|
68
70
|
context '(as string)' do
|
69
|
-
let(:value) {
|
71
|
+
let(:value) { 'foo' }
|
70
72
|
it do
|
71
73
|
is_expected.to be_a(Proc)
|
72
74
|
expect(described_class.validations[web_page.class][:url]).to be_a Proc
|
73
75
|
end
|
74
76
|
end
|
75
|
-
context '(as
|
77
|
+
context '(as regexp)' do
|
76
78
|
let(:value) { /foo/ }
|
77
79
|
it do
|
78
80
|
is_expected.to be_a(Proc)
|
@@ -92,7 +94,7 @@ RSpec.describe Howitzer::Web::PageValidator do
|
|
92
94
|
context 'when name = :element_presence' do
|
93
95
|
let(:name) { :element_presence }
|
94
96
|
context '(as string)' do
|
95
|
-
let(:value) { '
|
97
|
+
let(:value) { 'bar' }
|
96
98
|
let(:additional_value) { 'some string' }
|
97
99
|
it do
|
98
100
|
is_expected.to be_a(Proc)
|
@@ -100,23 +102,36 @@ RSpec.describe Howitzer::Web::PageValidator do
|
|
100
102
|
end
|
101
103
|
end
|
102
104
|
context '(as symbol)' do
|
103
|
-
let(:value) { :
|
105
|
+
let(:value) { :foo }
|
104
106
|
it do
|
105
107
|
is_expected.to be_a(Proc)
|
106
108
|
expect(described_class.validations[web_page.class][:element_presence]).to eql(subject)
|
107
109
|
end
|
108
110
|
end
|
111
|
+
|
112
|
+
context 'when refers to unknown element' do
|
113
|
+
let(:value) { :unknown }
|
114
|
+
it do
|
115
|
+
subject
|
116
|
+
expect do
|
117
|
+
described_class.validations[web_page.class][:element_presence].call(web_page, false)
|
118
|
+
end.to raise_error(
|
119
|
+
Howitzer::UndefinedElementError,
|
120
|
+
":element_presence validation refers to undefined 'unknown' element on 'TestWebPageClass' page."
|
121
|
+
)
|
122
|
+
end
|
123
|
+
end
|
109
124
|
end
|
110
125
|
context 'when name = :title' do
|
111
126
|
let(:name) { :title }
|
112
127
|
context '(as string)' do
|
113
|
-
let(:value) {
|
128
|
+
let(:value) { 'foo' }
|
114
129
|
it do
|
115
130
|
is_expected.to be_a(Proc)
|
116
131
|
expect(described_class.validations[web_page.class][:title]).to be_a Proc
|
117
132
|
end
|
118
133
|
end
|
119
|
-
context '(as
|
134
|
+
context '(as regexp)' do
|
120
135
|
let(:value) { /foo/ }
|
121
136
|
it do
|
122
137
|
is_expected.to be_a(Proc)
|
@@ -157,15 +172,15 @@ RSpec.describe Howitzer::Web::PageValidator do
|
|
157
172
|
end
|
158
173
|
context 'when all matches' do
|
159
174
|
before do
|
160
|
-
allow(web_page_class.instance).to receive(:current_url)
|
161
|
-
allow(web_page_class.instance).to receive(:has_title?)
|
162
|
-
allow(web_page_class.instance).to receive(:has_login_element?).with(no_args)
|
175
|
+
allow(web_page_class.instance).to receive(:current_url).and_return('http://test.com/foo')
|
176
|
+
allow(web_page_class.instance).to receive(:has_title?).and_return('Foo page')
|
177
|
+
allow(web_page_class.instance).to receive(:has_login_element?).with(no_args).and_return(true)
|
163
178
|
end
|
164
179
|
it { is_expected.to be_truthy }
|
165
180
|
end
|
166
181
|
context 'when first validation fails' do
|
167
182
|
before do
|
168
|
-
expect(web_page_class.instance).to receive(:current_url).once
|
183
|
+
expect(web_page_class.instance).to receive(:current_url).once.and_return('http://test.com/bar')
|
169
184
|
expect(web_page_class.instance).to receive(:has_title?).never
|
170
185
|
allow(web_page_class).to receive(:has_login_element?).with(no_args).never
|
171
186
|
end
|
@@ -186,15 +201,15 @@ RSpec.describe Howitzer::Web::PageValidator do
|
|
186
201
|
end
|
187
202
|
context 'when all matches' do
|
188
203
|
before do
|
189
|
-
allow(web_page_class.instance).to receive(:current_url)
|
190
|
-
allow(web_page_class.instance).to receive(:has_title?)
|
191
|
-
allow(web_page_class.instance).to receive(:has_login_element?).with(no_args)
|
204
|
+
allow(web_page_class.instance).to receive(:current_url).and_return('http://test.com/foo')
|
205
|
+
allow(web_page_class.instance).to receive(:has_title?).and_return('Foo page')
|
206
|
+
allow(web_page_class.instance).to receive(:has_login_element?).with(no_args).and_return(true)
|
192
207
|
end
|
193
208
|
it { is_expected.to be_truthy }
|
194
209
|
end
|
195
210
|
context 'when first validation fails' do
|
196
211
|
before do
|
197
|
-
expect(web_page_class.instance).to receive(:current_url).once
|
212
|
+
expect(web_page_class.instance).to receive(:current_url).once.and_return('http://test.com/bar')
|
198
213
|
expect(web_page_class.instance).to receive(:has_title?).never
|
199
214
|
allow(web_page_class).to receive(:has_login_element?).with(no_args).never
|
200
215
|
end
|
@@ -215,15 +230,15 @@ RSpec.describe Howitzer::Web::PageValidator do
|
|
215
230
|
end
|
216
231
|
context 'when all matches' do
|
217
232
|
before do
|
218
|
-
allow(web_page_class.instance).to receive(:current_url)
|
219
|
-
allow(web_page_class.instance).to receive(:title)
|
220
|
-
allow(web_page_class.instance).to receive(:has_no_login_element?).with(no_args)
|
233
|
+
allow(web_page_class.instance).to receive(:current_url).and_return('http://test.com/foo')
|
234
|
+
allow(web_page_class.instance).to receive(:title).and_return('Foo page')
|
235
|
+
allow(web_page_class.instance).to receive(:has_no_login_element?).with(no_args).and_return(false)
|
221
236
|
end
|
222
237
|
it { is_expected.to be_truthy }
|
223
238
|
end
|
224
239
|
context 'when first validation fails' do
|
225
240
|
before do
|
226
|
-
expect(web_page_class.instance).to receive(:current_url).once
|
241
|
+
expect(web_page_class.instance).to receive(:current_url).once.and_return('http://test.com/bar')
|
227
242
|
expect(web_page_class.instance).to receive(:title).never
|
228
243
|
allow(web_page_class).to receive(:has_no_login_element?).with(no_args).never
|
229
244
|
end
|
@@ -253,8 +268,8 @@ RSpec.describe Howitzer::Web::PageValidator do
|
|
253
268
|
allow(Howitzer::Web::PageValidator).to receive(:validations).with(no_args) do
|
254
269
|
{ web_page1_class => 1, web_page2_class => 2 }
|
255
270
|
end
|
256
|
-
expect(web_page1_class).to receive(:opened?).with(sync: false)
|
257
|
-
expect(web_page2_class).to receive(:opened?).with(sync: false)
|
271
|
+
expect(web_page1_class).to receive(:opened?).with(sync: false).and_return(true)
|
272
|
+
expect(web_page2_class).to receive(:opened?).with(sync: false).and_return(false)
|
258
273
|
end
|
259
274
|
it { is_expected.to eq([web_page1_class]) }
|
260
275
|
end
|
@@ -148,9 +148,9 @@ RSpec.describe Howitzer::Web::SectionDsl do
|
|
148
148
|
let(:context3) { double }
|
149
149
|
let(:capybara_element) { double }
|
150
150
|
before do
|
151
|
-
expect(session).to receive(:find).with(*finder_args).once
|
152
|
-
expect(context2).to receive(:find).with('#klass')
|
153
|
-
expect(context3).to receive(:find).with(:xpath, './/a')
|
151
|
+
expect(session).to receive(:find).with(*finder_args).once.and_return(context2)
|
152
|
+
expect(context2).to receive(:find).with('#klass').and_return(context3)
|
153
|
+
expect(context3).to receive(:find).with(:xpath, './/a').and_return(capybara_element)
|
154
154
|
end
|
155
155
|
|
156
156
|
it 'can work with nested section' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: howitzer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roman Parashchenko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-03-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -114,20 +114,34 @@ dependencies:
|
|
114
114
|
- - "~>"
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '3.2'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: rspec-wait
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
type: :runtime
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
117
131
|
- !ruby/object:Gem::Dependency
|
118
132
|
name: selenium-webdriver
|
119
133
|
requirement: !ruby/object:Gem::Requirement
|
120
134
|
requirements:
|
121
135
|
- - "<"
|
122
136
|
- !ruby/object:Gem::Version
|
123
|
-
version: '
|
137
|
+
version: '4.0'
|
124
138
|
type: :runtime
|
125
139
|
prerelease: false
|
126
140
|
version_requirements: !ruby/object:Gem::Requirement
|
127
141
|
requirements:
|
128
142
|
- - "<"
|
129
143
|
- !ruby/object:Gem::Version
|
130
|
-
version: '
|
144
|
+
version: '4.0'
|
131
145
|
- !ruby/object:Gem::Dependency
|
132
146
|
name: sexy_settings
|
133
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -238,6 +252,7 @@ files:
|
|
238
252
|
- generators/cucumber/cucumber_generator.rb
|
239
253
|
- generators/cucumber/templates/common_steps.rb
|
240
254
|
- generators/cucumber/templates/cucumber.rake
|
255
|
+
- generators/cucumber/templates/cuke_sniffer.rake
|
241
256
|
- generators/cucumber/templates/env.rb
|
242
257
|
- generators/cucumber/templates/example.feature
|
243
258
|
- generators/cucumber/templates/hooks.rb
|
@@ -360,7 +375,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
360
375
|
version: '0'
|
361
376
|
requirements: []
|
362
377
|
rubyforge_project:
|
363
|
-
rubygems_version: 2.6.
|
378
|
+
rubygems_version: 2.6.10
|
364
379
|
signing_key:
|
365
380
|
specification_version: 4
|
366
381
|
summary: Ruby based framework for acceptance testing
|