chutney 3.0.0.beta.1 → 3.1.1

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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +16 -0
  3. data/.rubocop.yml +4 -3
  4. data/LICENSE.txt +1 -1
  5. data/README.md +7 -1
  6. data/Rakefile +6 -8
  7. data/chutney.gemspec +9 -6
  8. data/config/{chutney.yml → chutney_defaults.yml} +2 -0
  9. data/docs/index.md +1 -1
  10. data/docs/usage/rules.md +34 -64
  11. data/exe/chutney +21 -3
  12. data/lib/chutney.rb +9 -3
  13. data/lib/chutney/configuration.rb +7 -2
  14. data/lib/chutney/formatter.rb +4 -5
  15. data/lib/chutney/formatter/pie_formatter.rb +8 -13
  16. data/lib/chutney/formatter/rainbow_formatter.rb +11 -13
  17. data/lib/chutney/linter.rb +50 -43
  18. data/lib/chutney/linter/avoid_full_stop.rb +1 -3
  19. data/lib/chutney/linter/avoid_outline_for_single_example.rb +3 -3
  20. data/lib/chutney/linter/avoid_scripting.rb +2 -2
  21. data/lib/chutney/linter/background_does_more_than_setup.rb +3 -4
  22. data/lib/chutney/linter/background_requires_multiple_scenarios.rb +1 -1
  23. data/lib/chutney/linter/bad_scenario_name.rb +2 -2
  24. data/lib/chutney/linter/file_name_differs_feature_name.rb +3 -3
  25. data/lib/chutney/linter/givens_after_background.rb +2 -2
  26. data/lib/chutney/linter/invalid_file_name.rb +1 -1
  27. data/lib/chutney/linter/invalid_step_flow.rb +2 -2
  28. data/lib/chutney/linter/missing_example_name.rb +2 -4
  29. data/lib/chutney/linter/missing_feature_description.rb +1 -1
  30. data/lib/chutney/linter/missing_feature_name.rb +2 -2
  31. data/lib/chutney/linter/missing_scenario_name.rb +1 -2
  32. data/lib/chutney/linter/missing_test_action.rb +1 -1
  33. data/lib/chutney/linter/missing_verification.rb +1 -1
  34. data/lib/chutney/linter/required_tags_starts_with.rb +5 -6
  35. data/lib/chutney/linter/same_tag_different_case.rb +37 -0
  36. data/lib/chutney/linter/same_tag_for_all_scenarios.rb +9 -9
  37. data/lib/chutney/linter/scenario_names_match.rb +2 -3
  38. data/lib/chutney/linter/tag_used_multiple_times.rb +1 -1
  39. data/lib/chutney/linter/too_clumsy.rb +1 -1
  40. data/lib/chutney/linter/too_long_step.rb +3 -3
  41. data/lib/chutney/linter/too_many_different_tags.rb +6 -6
  42. data/lib/chutney/linter/too_many_steps.rb +3 -3
  43. data/lib/chutney/linter/too_many_tags.rb +3 -3
  44. data/lib/chutney/linter/unique_scenario_names.rb +2 -2
  45. data/lib/chutney/linter/unknown_variable.rb +3 -3
  46. data/lib/chutney/linter/unused_variable.rb +3 -4
  47. data/lib/chutney/linter/use_background.rb +4 -4
  48. data/lib/chutney/linter/use_outline.rb +7 -7
  49. data/lib/chutney/version.rb +1 -1
  50. data/lib/config/locales/en.yml +3 -0
  51. data/spec/chutney_spec.rb +9 -9
  52. metadata +17 -33
@@ -63,6 +63,9 @@ en:
63
63
  scenario_names_match: >-
64
64
  You have a scenario name which does not match the required format.
65
65
  Allowed patterns are '%{pattern}'.
66
+ same_tag_different_case: >-
67
+ You have a tag which has already appeared as '@%{existing_tag}' which is a different case
68
+ to '@%{tag}'. Cucumber tags are case-sensitive: use a consistent case for your tag names.
66
69
  same_tag_for_all_scenarios:
67
70
  feature_level: >-
68
71
  You are using the same tag (%{tag}) for all scenarios.
data/spec/chutney_spec.rb CHANGED
@@ -8,25 +8,25 @@ describe Chutney::ChutneyLint do
8
8
  it 'has a version number' do
9
9
  expect(Chutney::VERSION).not_to be nil
10
10
  end
11
-
11
+
12
12
  describe '#initialize' do
13
13
  it 'creates an instance' do
14
14
  expect(subject).not_to be_nil
15
15
  end
16
-
16
+
17
17
  it 'has an empty list of files if none are given' do
18
18
  expect(subject.files).to eq []
19
19
  end
20
-
20
+
21
21
  it 'has a list of files given on initialization' do
22
22
  alt_subject = Chutney::ChutneyLint.new('a', 'b')
23
23
  expect(alt_subject.files).to eq %w[a b]
24
24
  end
25
-
25
+
26
26
  it 'initializes a results hash' do
27
27
  expect(subject.results).to eq({})
28
28
  end
29
-
29
+
30
30
  it 'sets the load path for I18n' do
31
31
  expect(I18n.load_path).not_to eq []
32
32
  end
@@ -36,25 +36,25 @@ describe Chutney::ChutneyLint do
36
36
  expect(subject.configuration).not_to be_nil
37
37
  expect(subject.configuration).to respond_to :[]
38
38
  end
39
-
39
+
40
40
  it 'allows the configuration to be set explicitly' do
41
41
  config = { 'BackgroundDoesMoreThanSetup' => { 'Enabled' => true } }
42
42
  subject.configuration = config
43
43
  expect(subject.configuration).to be config
44
44
  end
45
-
45
+
46
46
  it 'controls the available linters' do
47
47
  subject.configuration = {}
48
48
  expect(subject.linters).to be_empty
49
49
  end
50
-
50
+
51
51
  it 'enables linters to be activated' do
52
52
  config = { 'BackgroundDoesMoreThanSetup' => { 'Enabled' => true } }
53
53
  subject.configuration = config
54
54
  expect(subject.linters).to eq [Chutney::BackgroundDoesMoreThanSetup]
55
55
  end
56
56
  end
57
-
57
+
58
58
  context 'linting' do
59
59
  it 'aliases analyse and analyze' do
60
60
  expect(subject).to respond_to :analyse
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chutney
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.beta.1
4
+ version: 3.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nigel Brookes-Thomas
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2020-09-02 00:00:00.000000000 Z
14
+ date: 2021-05-12 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: amatch
@@ -41,26 +41,6 @@ dependencies:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
43
  version: '3.3'
44
- - !ruby/object:Gem::Dependency
45
- name: gherkin
46
- requirement: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: 5.1.0
51
- - - "<"
52
- - !ruby/object:Gem::Version
53
- version: '9.1'
54
- type: :runtime
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 5.1.0
61
- - - "<"
62
- - !ruby/object:Gem::Version
63
- version: '9.1'
64
44
  - !ruby/object:Gem::Dependency
65
45
  name: i18n
66
46
  requirement: !ruby/object:Gem::Requirement
@@ -123,14 +103,14 @@ dependencies:
123
103
  requirements:
124
104
  - - "~>"
125
105
  - !ruby/object:Gem::Version
126
- version: '5.1'
106
+ version: '6.0'
127
107
  type: :development
128
108
  prerelease: false
129
109
  version_requirements: !ruby/object:Gem::Requirement
130
110
  requirements:
131
111
  - - "~>"
132
112
  - !ruby/object:Gem::Version
133
- version: '5.1'
113
+ version: '6.0'
134
114
  - !ruby/object:Gem::Dependency
135
115
  name: pry-byebug
136
116
  requirement: !ruby/object:Gem::Requirement
@@ -193,14 +173,14 @@ dependencies:
193
173
  requirements:
194
174
  - - "~>"
195
175
  - !ruby/object:Gem::Version
196
- version: 0.89.0
176
+ version: 1.14.0
197
177
  type: :development
198
178
  prerelease: false
199
179
  version_requirements: !ruby/object:Gem::Requirement
200
180
  requirements:
201
181
  - - "~>"
202
182
  - !ruby/object:Gem::Version
203
- version: 0.89.0
183
+ version: 1.14.0
204
184
  - !ruby/object:Gem::Dependency
205
185
  name: rspec
206
186
  requirement: !ruby/object:Gem::Requirement
@@ -215,8 +195,10 @@ dependencies:
215
195
  - - "~>"
216
196
  - !ruby/object:Gem::Version
217
197
  version: '3.8'
218
- description: A linter for your Cucumber features. It supports any spoken language
219
- Cucumber supports.
198
+ description: A linter for your Cucumber features. Making sure you have nice, expressible
199
+ Gherkin is essential is making sure you have a readable test-base. Chutney is designed
200
+ to sniff out smells in your feature files. It supports any spoken language Cucumber
201
+ supports.
220
202
  email:
221
203
  - nigel@brookes-thomas.co.uk
222
204
  executables:
@@ -226,6 +208,7 @@ extra_rdoc_files: []
226
208
  files:
227
209
  - ".circleci/config.yml"
228
210
  - ".coveralls.yml"
211
+ - ".github/dependabot.yml"
229
212
  - ".gitignore"
230
213
  - ".rspec"
231
214
  - ".rubocop.yml"
@@ -235,7 +218,7 @@ files:
235
218
  - README.md
236
219
  - Rakefile
237
220
  - chutney.gemspec
238
- - config/chutney.yml
221
+ - config/chutney_defaults.yml
239
222
  - config/cucumber.yml
240
223
  - docs/.keep
241
224
  - docs/_config.yml
@@ -280,6 +263,7 @@ files:
280
263
  - lib/chutney/linter/missing_test_action.rb
281
264
  - lib/chutney/linter/missing_verification.rb
282
265
  - lib/chutney/linter/required_tags_starts_with.rb
266
+ - lib/chutney/linter/same_tag_different_case.rb
283
267
  - lib/chutney/linter/same_tag_for_all_scenarios.rb
284
268
  - lib/chutney/linter/scenario_names_match.rb
285
269
  - lib/chutney/linter/tag_used_multiple_times.rb
@@ -310,16 +294,16 @@ require_paths:
310
294
  - lib
311
295
  required_ruby_version: !ruby/object:Gem::Requirement
312
296
  requirements:
313
- - - "~>"
297
+ - - ">="
314
298
  - !ruby/object:Gem::Version
315
299
  version: '2.6'
316
300
  required_rubygems_version: !ruby/object:Gem::Requirement
317
301
  requirements:
318
- - - ">"
302
+ - - ">="
319
303
  - !ruby/object:Gem::Version
320
- version: 1.3.1
304
+ version: '0'
321
305
  requirements: []
322
- rubygems_version: 3.1.2
306
+ rubygems_version: 3.1.4
323
307
  signing_key:
324
308
  specification_version: 4
325
309
  summary: A linter for multi-lingual Gherkin