cuke_linter 0.13.0 → 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.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -1
  3. data/README.md +4 -4
  4. data/cuke_linter.gemspec +3 -3
  5. data/lib/cuke_linter.rb +5 -3
  6. data/lib/cuke_linter/version.rb +1 -1
  7. metadata +2 -86
  8. data/.gitignore +0 -19
  9. data/.simplecov +0 -8
  10. data/.travis.yml +0 -33
  11. data/CONTRIBUTING.md +0 -26
  12. data/Gemfile +0 -6
  13. data/Rakefile +0 -63
  14. data/appveyor.yml +0 -43
  15. data/bin/console +0 -14
  16. data/bin/setup +0 -8
  17. data/environments/common_env.rb +0 -12
  18. data/environments/cucumber_env.rb +0 -22
  19. data/environments/rspec_env.rb +0 -50
  20. data/testing/cucumber/step_definitions/action_steps.rb +0 -84
  21. data/testing/cucumber/step_definitions/setup_steps.rb +0 -258
  22. data/testing/cucumber/step_definitions/verification_steps.rb +0 -94
  23. data/testing/file_helper.rb +0 -41
  24. data/testing/formatter_factory.rb +0 -15
  25. data/testing/gemfiles/cuke_modeler1.gemfile +0 -8
  26. data/testing/gemfiles/cuke_modeler2.gemfile +0 -8
  27. data/testing/linter_factory.rb +0 -60
  28. data/testing/model_factory.rb +0 -109
  29. data/testing/rspec/spec/integration/cli_integration_spec.rb +0 -556
  30. data/testing/rspec/spec/integration/configuration_spec.rb +0 -811
  31. data/testing/rspec/spec/integration/cuke_linter_integration_spec.rb +0 -243
  32. data/testing/rspec/spec/integration/formatters/formatter_integration_specs.rb +0 -5
  33. data/testing/rspec/spec/integration/formatters/pretty_formatter_integration_spec.rb +0 -8
  34. data/testing/rspec/spec/integration/linters/background_does_more_than_setup_linter_integration_spec.rb +0 -8
  35. data/testing/rspec/spec/integration/linters/element_with_common_tags_linter_integration_spec.rb +0 -8
  36. data/testing/rspec/spec/integration/linters/element_with_duplicate_tags_linter_integration_spec.rb +0 -8
  37. data/testing/rspec/spec/integration/linters/element_with_too_many_tags_linter_integration_spec.rb +0 -8
  38. data/testing/rspec/spec/integration/linters/example_without_name_linter_integration_spec.rb +0 -8
  39. data/testing/rspec/spec/integration/linters/feature_file_with_invalid_name_integration_spec.rb +0 -8
  40. data/testing/rspec/spec/integration/linters/feature_file_with_mismatched_name_integration_spec.rb +0 -8
  41. data/testing/rspec/spec/integration/linters/feature_with_too_many_different_tags_linter_integration_spec.rb +0 -8
  42. data/testing/rspec/spec/integration/linters/feature_without_description_linter_integration_spec.rb +0 -8
  43. data/testing/rspec/spec/integration/linters/feature_without_name_linter_integration_spec.rb +0 -8
  44. data/testing/rspec/spec/integration/linters/feature_without_scenarios_linter_integration_spec.rb +0 -8
  45. data/testing/rspec/spec/integration/linters/linter_integration_spec.rb +0 -8
  46. data/testing/rspec/spec/integration/linters/linter_integration_specs.rb +0 -7
  47. data/testing/rspec/spec/integration/linters/outline_with_single_example_row_linter_integration_spec.rb +0 -8
  48. data/testing/rspec/spec/integration/linters/single_test_background_linter_integration_spec.rb +0 -8
  49. data/testing/rspec/spec/integration/linters/step_with_end_period_linter_integration_spec.rb +0 -8
  50. data/testing/rspec/spec/integration/linters/step_with_too_many_characters_linter_integration_spec.rb +0 -8
  51. data/testing/rspec/spec/integration/linters/test_should_use_background_linter_integration_spec.rb +0 -8
  52. data/testing/rspec/spec/integration/linters/test_with_action_step_as_final_step_linter_integration_spec.rb +0 -8
  53. data/testing/rspec/spec/integration/linters/test_with_bad_name_integration_spec.rb +0 -8
  54. data/testing/rspec/spec/integration/linters/test_with_no_action_step_integration_spec.rb +0 -8
  55. data/testing/rspec/spec/integration/linters/test_with_no_name_integration_spec.rb +0 -8
  56. data/testing/rspec/spec/integration/linters/test_with_no_verification_step_integration_spec.rb +0 -8
  57. data/testing/rspec/spec/integration/linters/test_with_setup_step_after_action_step_linter_integration_spec.rb +0 -8
  58. data/testing/rspec/spec/integration/linters/test_with_setup_step_after_verification_step_linter_integration_spec.rb +0 -8
  59. data/testing/rspec/spec/integration/linters/test_with_setup_step_as_final_step_linter_integration_spec.rb +0 -8
  60. data/testing/rspec/spec/integration/linters/test_with_too_many_steps_linter_integration_spec.rb +0 -8
  61. data/testing/rspec/spec/unit/cuke_linter_unit_spec.rb +0 -114
  62. data/testing/rspec/spec/unit/formatters/formatter_unit_specs.rb +0 -11
  63. data/testing/rspec/spec/unit/formatters/pretty_formatter_unit_spec.rb +0 -115
  64. data/testing/rspec/spec/unit/linters/background_does_more_than_setup_linter_unit_spec.rb +0 -186
  65. data/testing/rspec/spec/unit/linters/configurable_linter_unit_specs.rb +0 -11
  66. data/testing/rspec/spec/unit/linters/element_with_common_tags_linter_unit_spec.rb +0 -248
  67. data/testing/rspec/spec/unit/linters/element_with_duplicate_tags_linter_unit_spec.rb +0 -203
  68. data/testing/rspec/spec/unit/linters/element_with_too_many_tags_linter_unit_spec.rb +0 -296
  69. data/testing/rspec/spec/unit/linters/example_without_name_linter_unit_spec.rb +0 -81
  70. data/testing/rspec/spec/unit/linters/feature_file_with_invalid_name_linter_unit_spec.rb +0 -106
  71. data/testing/rspec/spec/unit/linters/feature_file_with_mismatched_name_linter_unit_spec.rb +0 -124
  72. data/testing/rspec/spec/unit/linters/feature_with_too_many_different_tags_linter_unit_spec.rb +0 -293
  73. data/testing/rspec/spec/unit/linters/feature_without_description_linter_unit_spec.rb +0 -80
  74. data/testing/rspec/spec/unit/linters/feature_without_name_linter_unit_spec.rb +0 -84
  75. data/testing/rspec/spec/unit/linters/feature_without_scenarios_linter_unit_spec.rb +0 -102
  76. data/testing/rspec/spec/unit/linters/linter_unit_spec.rb +0 -197
  77. data/testing/rspec/spec/unit/linters/linter_unit_specs.rb +0 -57
  78. data/testing/rspec/spec/unit/linters/outline_with_single_example_row_linter_unit_spec.rb +0 -184
  79. data/testing/rspec/spec/unit/linters/single_test_background_linter_unit_spec.rb +0 -89
  80. data/testing/rspec/spec/unit/linters/step_with_end_period_linter_unit_spec.rb +0 -54
  81. data/testing/rspec/spec/unit/linters/step_with_too_many_characters_linter_unit_spec.rb +0 -155
  82. data/testing/rspec/spec/unit/linters/test_should_use_background_linter_unit_spec.rb +0 -464
  83. data/testing/rspec/spec/unit/linters/test_with_action_step_as_final_step_linter_unit_spec.rb +0 -165
  84. data/testing/rspec/spec/unit/linters/test_with_bad_name_linter_unit_spec.rb +0 -81
  85. data/testing/rspec/spec/unit/linters/test_with_no_action_step_linter_unit_spec.rb +0 -244
  86. data/testing/rspec/spec/unit/linters/test_with_no_name_linter_unit_spec.rb +0 -88
  87. data/testing/rspec/spec/unit/linters/test_with_no_verification_step_linter_unit_spec.rb +0 -246
  88. data/testing/rspec/spec/unit/linters/test_with_setup_step_after_action_step_linter_unit_spec.rb +0 -233
  89. data/testing/rspec/spec/unit/linters/test_with_setup_step_after_verification_step_linter_unit_spec.rb +0 -233
  90. data/testing/rspec/spec/unit/linters/test_with_setup_step_as_final_step_linter_unit_spec.rb +0 -164
  91. data/testing/rspec/spec/unit/linters/test_with_too_many_steps_linter_unit_spec.rb +0 -192
@@ -1,233 +0,0 @@
1
- require_relative '../../../../../environments/rspec_env'
2
-
3
-
4
- RSpec.describe CukeLinter::TestWithSetupStepAfterVerificationStepLinter do
5
-
6
- let(:model_file_path) { 'some_file_path' }
7
-
8
- it_should_behave_like 'a linter at the unit level'
9
- it_should_behave_like 'a configurable linter at the unit level'
10
-
11
-
12
- it 'has a name' do
13
- expect(subject.name).to eq('TestWithSetupStepAfterVerificationStepLinter')
14
- end
15
-
16
- describe 'linting' do
17
-
18
- ['scenario', 'outline'].each do |model_type|
19
-
20
- context "with a #{model_type} that has a setup step after a verification step" do
21
-
22
- let(:test_model) do
23
- model = CukeLinter::ModelFactory.send("generate_#{model_type}_model",
24
- parent_file_path: model_file_path)
25
- model.steps = [CukeModeler::Step.new('Then a step'),
26
- CukeModeler::Step.new('Given a step')]
27
-
28
- model
29
- end
30
-
31
- it_should_behave_like 'a linter linting a bad model'
32
-
33
-
34
- it 'records a problem' do
35
- result = subject.lint(test_model)
36
-
37
- expect(result[:problem]).to eq("Test has 'Given' step after 'Then' step.")
38
- end
39
-
40
- end
41
-
42
- context "with a #{model_type} that does not have a setup step after a verification step" do
43
-
44
- context 'because it has no steps' do
45
-
46
- context 'because its steps are empty' do
47
-
48
- let(:test_model) do
49
- model = CukeLinter::ModelFactory.send("generate_#{model_type}_model")
50
- model.steps = []
51
-
52
- model
53
- end
54
-
55
- it_should_behave_like 'a linter linting a good model'
56
-
57
- end
58
-
59
- context 'because its steps are nil' do
60
-
61
- let(:test_model) do
62
- model = CukeLinter::ModelFactory.send("generate_#{model_type}_model")
63
- model.steps = nil
64
-
65
- model
66
- end
67
-
68
- it_should_behave_like 'a linter linting a good model'
69
-
70
- end
71
-
72
- end
73
-
74
- context 'because its setup steps come before its verification steps' do
75
-
76
- let(:test_model) do
77
- model = CukeLinter::ModelFactory.send("generate_#{model_type}_model")
78
- model.steps = [CukeModeler::Step.new('Given a step'),
79
- CukeModeler::Step.new('Then a step'),]
80
-
81
- model
82
- end
83
-
84
- it_should_behave_like 'a linter linting a good model'
85
-
86
- end
87
-
88
- end
89
-
90
- context "with a #{model_type} that has an associated background" do
91
-
92
- let(:test_model) do
93
- feature_model = CukeLinter::ModelFactory.generate_feature_model(source_text: 'Feature:
94
- Background:
95
- Given a step
96
- Then a step
97
- Given a step
98
- Then a step')
99
-
100
- model = CukeLinter::ModelFactory.send("generate_#{model_type}_model")
101
- model.steps = [CukeModeler::Step.new('Given a step')]
102
-
103
- model.parent_model = feature_model
104
- feature_model.tests << model
105
-
106
- model
107
- end
108
-
109
- it 'does not consider those steps when linting' do
110
- expect(subject.lint(test_model)).to eq(nil)
111
- end
112
-
113
- end
114
-
115
- end
116
-
117
- describe 'configuration' do
118
-
119
- let(:test_model) do
120
- CukeLinter::ModelFactory.generate_scenario_model(source_text: 'Scenario:
121
- Then a step
122
- Given a step')
123
- end
124
-
125
- context 'with configuration' do
126
-
127
- before(:each) do
128
- subject.configure(configuration)
129
- end
130
-
131
- context "with a configured 'Given' keyword" do
132
-
133
- let(:given_keyword) { 'Foo' }
134
- let(:configuration) { { 'Given' => given_keyword } }
135
-
136
- it "uses the configured 'Given' keyword" do
137
- test_model.steps.last.keyword = given_keyword
138
-
139
- result = subject.lint(test_model)
140
-
141
- expect(result).to_not be_nil
142
- end
143
-
144
- end
145
-
146
- context "with a configured 'Then' keyword" do
147
-
148
- let(:then_keyword) { 'Foo' }
149
- let(:configuration) { { 'Then' => then_keyword } }
150
-
151
- it "uses the configured 'Then' keyword" do
152
- test_model.steps.first.keyword = then_keyword
153
-
154
- result = subject.lint(test_model)
155
-
156
- expect(result).to_not be_nil
157
- end
158
-
159
- end
160
-
161
- end
162
-
163
- context 'without configuration' do
164
-
165
- context 'because configuration never happened' do
166
-
167
- it "uses the default 'Given' keyword" do
168
- test_model.steps.last.keyword = CukeLinter::DEFAULT_GIVEN_KEYWORD
169
-
170
- result = subject.lint(test_model)
171
-
172
- expect(result).to_not be_nil
173
- end
174
-
175
- it "uses the default 'Then' keyword" do
176
- test_model.steps.first.keyword = CukeLinter::DEFAULT_THEN_KEYWORD
177
-
178
- result = subject.lint(test_model)
179
-
180
- expect(result).to_not be_nil
181
- end
182
-
183
- end
184
-
185
- context "because configuration did not set a 'Given' keyword" do
186
-
187
- before(:each) do
188
- subject.configure(configuration)
189
- end
190
-
191
- let(:configuration) { {} }
192
-
193
- it "uses the default 'Given' keyword" do
194
- test_model.steps.last.keyword = CukeLinter::DEFAULT_GIVEN_KEYWORD
195
-
196
- result = subject.lint(test_model)
197
-
198
- expect(result).to_not be_nil
199
- end
200
-
201
- end
202
-
203
- context "because configuration did not set a 'Then' keyword" do
204
-
205
- before(:each) do
206
- subject.configure(configuration)
207
- end
208
-
209
- let(:configuration) { {} }
210
-
211
- it "uses the default 'Then' keyword" do
212
- test_model.steps.first.keyword = CukeLinter::DEFAULT_THEN_KEYWORD
213
-
214
- result = subject.lint(test_model)
215
-
216
- expect(result).to_not be_nil
217
- end
218
-
219
- end
220
-
221
- end
222
-
223
- end
224
-
225
- context 'a non-test model' do
226
-
227
- let(:test_model) { CukeModeler::Model.new }
228
-
229
- it_should_behave_like 'a linter linting a good model'
230
-
231
- end
232
- end
233
- end
@@ -1,164 +0,0 @@
1
- require_relative '../../../../../environments/rspec_env'
2
-
3
-
4
- RSpec.describe CukeLinter::TestWithSetupStepAsFinalStepLinter do
5
-
6
- let(:model_file_path) { 'some_file_path' }
7
-
8
- it_should_behave_like 'a linter at the unit level'
9
- it_should_behave_like 'a configurable linter at the unit level'
10
-
11
-
12
- it 'has a name' do
13
- expect(subject.name).to eq('TestWithSetupStepAsFinalStepLinter')
14
- end
15
-
16
- describe 'linting' do
17
-
18
- ['scenario', 'outline'].each do |model_type|
19
-
20
- context "with a #{model_type} that has a setup step as its final step" do
21
-
22
- let(:test_model) do
23
- model = CukeLinter::ModelFactory.send("generate_#{model_type}_model", parent_file_path: model_file_path)
24
- model.steps = [CukeModeler::Step.new('When a step'),
25
- CukeModeler::Step.new('Given a step')]
26
-
27
- model
28
- end
29
-
30
- it_should_behave_like 'a linter linting a bad model'
31
-
32
-
33
- it 'records a problem' do
34
- result = subject.lint(test_model)
35
-
36
- expect(result[:problem]).to eq("Test has 'Given' as the final step.")
37
- end
38
-
39
- end
40
-
41
- context "with a #{model_type} that does not have a setup step as its final step" do
42
-
43
- context 'because it has no steps' do
44
-
45
- context 'because its steps are empty' do
46
-
47
- let(:test_model) do
48
- model = CukeLinter::ModelFactory.send("generate_#{model_type}_model")
49
- model.steps = []
50
-
51
- model
52
- end
53
-
54
- it_should_behave_like 'a linter linting a good model'
55
-
56
- end
57
-
58
- context 'because its steps are nil' do
59
-
60
- let(:test_model) do
61
- model = CukeLinter::ModelFactory.send("generate_#{model_type}_model")
62
- model.steps = nil
63
-
64
- model
65
- end
66
-
67
- it_should_behave_like 'a linter linting a good model'
68
-
69
- end
70
-
71
- end
72
-
73
- context 'because its final step is not a setup step' do
74
-
75
- let(:test_model) do
76
- model = CukeLinter::ModelFactory.send("generate_#{model_type}_model")
77
- model.steps = [CukeModeler::Step.new('Then a step')]
78
-
79
- model
80
- end
81
-
82
- it_should_behave_like 'a linter linting a good model'
83
-
84
- end
85
-
86
- end
87
-
88
- end
89
-
90
- describe 'configuration' do
91
-
92
- let(:test_model) do
93
- CukeLinter::ModelFactory.generate_scenario_model(source_text: 'Scenario:
94
- * a step')
95
- end
96
-
97
- context 'with configuration' do
98
-
99
- before(:each) do
100
- subject.configure(configuration)
101
- end
102
-
103
- context "with a configured 'Given' keyword" do
104
-
105
- let(:given_keyword) { 'Foo' }
106
- let(:configuration) { { 'Given' => given_keyword } }
107
-
108
- it "uses the configured 'Given' keyword" do
109
- test_model.steps.last.keyword = given_keyword
110
-
111
- result = subject.lint(test_model)
112
-
113
- expect(result).to_not be_nil
114
- end
115
-
116
- end
117
-
118
- end
119
-
120
- context 'without configuration' do
121
-
122
- context 'because configuration never happened' do
123
-
124
- it "uses the default 'Given' keyword" do
125
- test_model.steps.last.keyword = CukeLinter::DEFAULT_GIVEN_KEYWORD
126
-
127
- result = subject.lint(test_model)
128
-
129
- expect(result).to_not be_nil
130
- end
131
-
132
- end
133
-
134
- context "because configuration did not set a 'Given' keyword" do
135
-
136
- before(:each) do
137
- subject.configure(configuration)
138
- end
139
-
140
- let(:configuration) { {} }
141
-
142
- it "uses the default 'Given' keyword" do
143
- test_model.steps.last.keyword = CukeLinter::DEFAULT_GIVEN_KEYWORD
144
-
145
- result = subject.lint(test_model)
146
-
147
- expect(result).to_not be_nil
148
- end
149
-
150
- end
151
-
152
- end
153
-
154
- end
155
-
156
- context 'a non-test model' do
157
-
158
- let(:test_model) { CukeModeler::Model.new }
159
-
160
- it_should_behave_like 'a linter linting a good model'
161
-
162
- end
163
- end
164
- end
@@ -1,192 +0,0 @@
1
- require_relative '../../../../../environments/rspec_env'
2
-
3
-
4
- RSpec.describe CukeLinter::TestWithTooManyStepsLinter do
5
-
6
- let(:model_file_path) { 'some_file_path' }
7
-
8
- it_should_behave_like 'a linter at the unit level'
9
- it_should_behave_like 'a configurable linter at the unit level'
10
-
11
-
12
- it 'has a name' do
13
- expect(subject.name).to eq('TestWithTooManyStepsLinter')
14
- end
15
-
16
- describe 'linting' do
17
-
18
- ['scenario', 'outline'].each do |model_type|
19
-
20
- context "with a #{model_type} that has too many steps" do
21
-
22
- let(:test_model) do
23
- model = CukeLinter::ModelFactory.send("generate_#{model_type}_model", parent_file_path: model_file_path)
24
- model.steps = [:step_1,
25
- :step_2,
26
- :step_3,
27
- :step_4,
28
- :step_5,
29
- :step_6,
30
- :step_7,
31
- :step_8,
32
- :step_9,
33
- :step_10,
34
- :step_11]
35
-
36
- model
37
- end
38
-
39
- it_should_behave_like 'a linter linting a bad model'
40
-
41
-
42
- it 'records a problem' do
43
- result = subject.lint(test_model)
44
-
45
- expect(result[:problem]).to match(/^Test has too many steps. \d+ steps found \(max 10\)/)
46
- end
47
-
48
- it 'includes the number of steps found in the problem record' do
49
- step_count = test_model.steps.count
50
- result = subject.lint(test_model)
51
- expect(result[:problem]).to eq("Test has too many steps. #{step_count} steps found (max 10).")
52
-
53
- test_model.steps << :another_step
54
- result = subject.lint(test_model)
55
- expect(result[:problem]).to eq("Test has too many steps. #{step_count + 1} steps found (max 10).")
56
- end
57
-
58
- end
59
-
60
- context "with a #{model_type} that does not have too many steps" do
61
-
62
- context 'because it has fewer than 10 steps' do
63
-
64
- let(:test_model) do
65
- model = CukeLinter::ModelFactory.send("generate_#{model_type}_model", parent_file_path: 'path_to_file')
66
- model.steps = [:step_1]
67
-
68
- model
69
- end
70
-
71
- it_should_behave_like 'a linter linting a good model'
72
-
73
- end
74
-
75
- context 'because it has no steps' do
76
-
77
- context 'because its steps are empty' do
78
-
79
- let(:test_model) do
80
- model = CukeLinter::ModelFactory.send("generate_#{model_type}_model", parent_file_path: 'path_to_file')
81
- model.steps = []
82
-
83
- model
84
- end
85
-
86
- it_should_behave_like 'a linter linting a good model'
87
-
88
- end
89
-
90
- context 'because its steps are nil' do
91
-
92
- let(:test_model) do
93
- model = CukeLinter::ModelFactory.send("generate_#{model_type}_model", parent_file_path: 'path_to_file')
94
- model.steps = nil
95
-
96
- model
97
- end
98
-
99
- it_should_behave_like 'a linter linting a good model'
100
-
101
- end
102
-
103
- end
104
-
105
- end
106
-
107
-
108
- describe 'configuration' do
109
-
110
- context 'with no configuration' do
111
-
112
- let(:default_step_threshhold) { 10 }
113
-
114
- context 'because configuration never happened' do
115
-
116
- let(:unconfigured_test_model) do
117
- model = CukeLinter::ModelFactory.send("generate_#{model_type}_model")
118
- model.steps = []
119
- (default_step_threshhold + 1).times { model.steps << :a_step }
120
-
121
- model
122
- end
123
-
124
- it 'defaults to a step threshold of 10 steps' do
125
- result = subject.lint(unconfigured_test_model)
126
-
127
- expect(result[:problem]).to match(/^Test has too many steps. #{unconfigured_test_model.steps.count} steps found \(max 10\)/)
128
- end
129
-
130
- end
131
-
132
- context 'because configuration did not set a step threshold' do
133
- let(:configuration) { {} }
134
- let(:configured_test_model) do
135
- model = CukeLinter::ModelFactory.send("generate_#{model_type}_model")
136
- model.steps = []
137
- (default_step_threshhold + 1).times { model.steps << :a_step }
138
-
139
- subject.configure(configuration)
140
-
141
- model
142
- end
143
-
144
- it 'defaults to a step threshold of 10 steps' do
145
- result = subject.lint(configured_test_model)
146
-
147
- expect(result[:problem]).to match(/^Test has too many steps. #{configured_test_model.steps.count} steps found \(max 10\)/)
148
- end
149
-
150
- end
151
-
152
- end
153
-
154
-
155
- context 'with configuration' do
156
-
157
- let(:step_threshhold) { 3 }
158
- let(:configuration) { { 'StepThreshold' => step_threshhold } }
159
-
160
- subject { linter = CukeLinter::TestWithTooManyStepsLinter.new
161
- linter.configure(configuration)
162
- linter }
163
-
164
- let(:test_model) do
165
- model = CukeLinter::ModelFactory.send("generate_#{model_type}_model")
166
- model.steps = []
167
- (step_threshhold + 1).times { model.steps << :a_step }
168
-
169
- model
170
- end
171
-
172
- it 'the step threshold used is the configured value' do
173
- result = subject.lint(test_model)
174
-
175
- expect(result[:problem]).to match(/^Test has too many steps. #{test_model.steps.count} steps found \(max #{step_threshhold}\)/)
176
- end
177
-
178
- end
179
-
180
- end
181
-
182
- end
183
-
184
- context 'a non-test model' do
185
-
186
- let(:test_model) { CukeModeler::Model.new }
187
-
188
- it_should_behave_like 'a linter linting a good model'
189
-
190
- end
191
- end
192
- end