@@ -7,64 +7,3 @@ require:
77
88inherit_gem :
99 pundit : config/rubocop-rspec.yml
10-
11- # CUSTOM RULES (keep these simple please! see https://en.wikipedia.org/wiki/Law_of_triviality)
12- Rails/DefaultScope :
13- Enabled : true
14- Details : |-
15- Default scopes lead to unexpected behavior for future developers!
16-
17- Rails/SaveBang :
18- Enabled : true
19- Include :
20- - ' spec/**/*'
21- Details : |-
22- Specs `should fail` if a setup record is invalid.
23-
24- RSpec/ExampleLength :
25- # 667 Offenses when default (Max: 5, CountAsOne: []) used. Aggregating failures make examples longer.
26- CountAsOne : ['array', 'hash', 'heredoc', 'method_call']
27- Max : 15 # 9 Offenses
28- Exclude :
29- - ' spec/system/**/*'
30-
31- RSpec/LetSetup :
32- # Only here for the extra details as let! use is extremely common... counter-examples? not so common!
33- Details : |-
34- Using let! obscures test setup and leads to extra database calls.
35- Instead of `let!(:unreferenced_thing) { create(:thing) }`
36- Do shared setup in a before block:
37- before do
38- `create(:thing)`
39- end
40- OR do the setup in the example itself:
41- it "does something" do
42- `create(:thing)`
43- subject
44- ...
45- end
46- OR when needed for a another let variable, call in the let block of the dependant variable:
47- let(:necessary_thing) { `create(:thing)` }
48- let(:dependent_thing) do
49- `necessary_thing`
50- create(:dependent_thing)
51- end
52-
53- RSpec/MultipleExpectations :
54- # Allow because we can aggregate failures by default (rails_helper.rb)
55- # 958 Offenses when default (1) is used
56- Max : 10 # 3 Offenses
57- Exclude :
58- - ' spec/system/**/*' # expensive per example & async behaviors require expectations after user interaction
59-
60- RSpec/MultipleMemoizedHelpers :
61- # 670 Offenses when default (5) is used
62- Max : 20 # 19 Offenses
63-
64- RSpec/NamedSubject :
65- # 321 Offenses; readability/preference only
66- Enabled : false
67-
68- RSpec/NestedGroups :
69- # 352 Offenses when default (3) is used
70- Max : 5 # 10 Offenses
0 commit comments