Files
nairobi/.rubocop.yml
Javi Martín dd7d6440ec Add and apply Capybara/VisibilityMatcher rule
This rule was added in rubocop-rspec 1.39.0. The `visible: false` option
is equivalent to `visible: :all`, but we generally use it meaning
`visible: :hidden` for positive expectations and `visible: :all` for
negative expectations.

The only exceptations are tests where we count the number of map icons
present. I'm assuming in this case we care about the number of map icons
independently on whether they are currently shown in the map, so I'm
keeping the `visible: :all` behavior in this case.
2020-10-25 14:23:53 +01:00

469 lines
6.9 KiB
YAML

require:
- rubocop-performance
- rubocop-rails
- rubocop-rspec
AllCops:
DisplayCopNames: true
DisplayStyleGuide: true
Exclude:
- "db/schema.rb"
DisabledByDefault: true
Bundler/DuplicatedGem:
Enabled: true
Bundler/OrderedGems:
Enabled: true
ConsiderPunctuation: true
Capybara/CurrentPathExpectation:
Enabled: true
Capybara/FeatureMethods:
Enabled: true
EnabledMethods:
- scenario
- xscenario
Capybara/VisibilityMatcher:
Enabled: true
FactoryBot/AttributeDefinedStatically:
Enabled: true
FactoryBot/FactoryClassName:
Enabled: true
Layout/AssignmentIndentation:
Enabled: true
Layout/EmptyLineAfterGuardClause:
Enabled: true
Layout/EmptyLineBetweenDefs:
Enabled: true
Layout/EmptyLines:
Enabled: true
Layout/EmptyLinesAroundAccessModifier:
Enabled: true
Layout/EmptyLinesAroundBlockBody:
Enabled: true
Layout/EmptyLinesAroundClassBody:
Enabled: true
Layout/EmptyLinesAroundMethodBody:
Enabled: true
Layout/EmptyLinesAroundModuleBody:
Enabled: true
Layout/EndOfLine:
EnforcedStyle: lf
Layout/ExtraSpacing:
Enabled: true
Layout/HeredocIndentation:
Enabled: true
Layout/IndentationConsistency:
EnforcedStyle: indented_internal_methods
Layout/IndentationStyle:
Enabled: true
Layout/IndentationWidth:
Enabled: true
Layout/LeadingEmptyLines:
Enabled: true
Layout/LineLength:
Max: 110
Severity: refactor
Layout/MultilineBlockLayout:
Enabled: true
Layout/SpaceAfterColon:
Enabled: true
Layout/SpaceAfterComma:
Enabled: true
Layout/SpaceAfterMethodName:
Enabled: true
Layout/SpaceAfterNot:
Enabled: true
Layout/SpaceAfterSemicolon:
Enabled: true
Layout/SpaceAroundBlockParameters:
Enabled: true
Layout/SpaceAroundEqualsInParameterDefault:
Enabled: true
Layout/SpaceAroundMethodCallOperator:
Enabled: true
Layout/SpaceAroundOperators:
Enabled: true
Layout/SpaceBeforeBlockBraces:
Enabled: true
Layout/SpaceBeforeComma:
Enabled: true
Layout/SpaceBeforeComment:
Enabled: true
Layout/SpaceBeforeFirstArg:
Enabled: true
Layout/SpaceBeforeSemicolon:
Enabled: true
Layout/SpaceInLambdaLiteral:
Enabled: true
Layout/SpaceInsideArrayLiteralBrackets:
Enabled: true
Layout/SpaceInsideArrayPercentLiteral:
Enabled: true
Layout/SpaceInsideBlockBraces:
Enabled: true
Layout/SpaceInsideHashLiteralBraces:
Enabled: true
EnforcedStyle: compact
Layout/SpaceInsideParens:
Enabled: true
Layout/SpaceInsidePercentLiteralDelimiters:
Enabled: true
Layout/SpaceInsideRangeLiteral:
Enabled: true
Layout/SpaceInsideReferenceBrackets:
Enabled: true
Layout/SpaceInsideStringInterpolation:
Enabled: true
Layout/TrailingEmptyLines:
Enabled: true
Layout/TrailingWhitespace:
Enabled: true
Lint/AmbiguousRegexpLiteral:
Enabled: true
Lint/ConstantDefinitionInBlock:
Enabled: true
Lint/DuplicateMethods:
Enabled: true
Lint/EmptyFile:
Enabled: true
Lint/LiteralAsCondition:
Enabled: true
Lint/ParenthesesAsGroupedExpression:
Enabled: true
Lint/RedundantStringCoercion:
Enabled: true
Lint/SafeNavigationChain:
Enabled: true
Lint/ShadowingOuterLocalVariable:
Enabled: true
Lint/UselessAssignment:
Enabled: true
Lint/Void:
Enabled: true
Performance/CompareWithBlock:
Enabled: true
Performance/DoubleStartEndWith:
Enabled: true
Performance/EndWith:
Enabled: true
Performance/StartWith:
Enabled: true
Rails/CreateTableWithTimestamps:
Enabled: true
Exclude:
- "db/migrate/201[5-8]*"
- "db/migrate/*install_audited.rb"
Rails/Date:
Enabled: true
Rails/DynamicFindBy:
Enabled: true
Whitelist:
- find_by_slug_or_id
- find_by_slug_or_id!
- find_by_manager_login
Rails/EnumUniqueness:
Enabled: true
Rails/EnvironmentComparison:
Enabled: true
Rails/FindBy:
Enabled: true
Include:
- "**/*.rb"
Rails/FindEach:
Enabled: true
Rails/HasAndBelongsToMany:
Enabled: true
Rails/HasManyOrHasOneDependent:
Enabled: true
Severity: refactor
Rails/InverseOf:
Enabled: true
Exclude:
- "app/models/related_content.rb"
Rails/NotNullColumn:
Enabled: true
Exclude:
- "db/migrate/201[5-7]*"
Rails/OutputSafety:
Enabled: true
Severity: warning
Exclude:
- app/helpers/text_with_links_helper.rb
Rails/PluralizationGrammar:
Enabled: true
Rails/Presence:
Enabled: true
Rails/RelativeDateConstant:
Enabled: true
Rails/RequestReferer:
Enabled: true
Rails/ReversibleMigration:
Enabled: true
Rails/SafeNavigation:
Enabled: true
ConvertTry: true
Rails/SaveBang:
Enabled: true
Severity: refactor
Rails/SkipsModelValidations:
Enabled: true
Blacklist:
- update_attribute
Exclude:
- lib/acts_as_paranoid_aliases.rb
Rails/TimeZone:
Enabled: true
Rails/UnknownEnv:
Enabled: true
Environments:
- development
- test
- production
- preproduction
- staging
Rails/Validation:
Enabled: true
RSpec/AroundBlock:
Enabled: true
RSpec/BeforeAfterAll:
Enabled: true
RSpec/ContextMethod:
Enabled: true
RSpec/DescribedClass:
Enabled: true
EnforcedStyle: explicit
RSpec/EmptyExampleGroup:
Enabled: true
Exclude:
- spec/factories/**/*
RSpec/EmptyHook:
Enabled: true
RSpec/EmptyLineAfterExample:
Enabled: true
RSpec/EmptyLineAfterExampleGroup:
Enabled: true
Exclude:
- spec/factories/**/*
RSpec/ExampleWording:
Enabled: true
RSpec/Focus:
Enabled: true
RSpec/HookArgument:
Enabled: true
RSpec/InstanceVariable:
Enabled: true
Exclude:
- spec/controllers/concerns/has_filters_spec.rb
- spec/controllers/concerns/has_orders_spec.rb
RSpec/LetBeforeExamples:
Enabled: true
RSpec/LetSetup:
Enabled: true
RSpec/NotToNot:
Enabled: true
RSpec/OverwritingSetup:
Enabled: true
RSpec/RepeatedExample:
Enabled: true
RSpec/RepeatedExampleGroupBody:
Enabled: true
RSpec/RepeatedExampleGroupDescription:
Enabled: true
RSpec/ScatteredLet:
Enabled: true
RSpec/ScatteredSetup:
Enabled: true
RSpec/VoidExpect:
Enabled: true
Security/Eval:
Enabled: true
Security/JSONLoad:
Enabled: true
Security/YAMLLoad:
Enabled: true
Style/AccessorGrouping:
Enabled: true
Style/AndOr:
Enabled: true
Style/ArrayCoercion:
Enabled: true
Style/BlockDelimiters:
Enabled: true
Style/ClassCheck:
Enabled: true
Style/ClassVars:
Enabled: true
Style/CollectionMethods:
Enabled: true
Style/HashSyntax:
Enabled: true
Style/IdenticalConditionalBranches:
Enabled: true
Style/MethodDefParentheses:
Enabled: true
Style/MutableConstant:
Enabled: true
Style/Not:
Enabled: true
Style/OrAssignment:
Enabled: true
Style/PercentLiteralDelimiters:
Enabled: true
Style/Proc:
Enabled: true
Style/RedundantFileExtensionInRequire:
Enabled: true
Style/RedundantFreeze:
Enabled: true
Style/RedundantReturn:
Enabled: true
Style/SafeNavigation:
Enabled: true
Style/StringLiterals:
EnforcedStyle: double_quotes
Style/StringLiteralsInInterpolation:
EnforcedStyle: double_quotes
Style/SymbolProc:
Enabled: true
Style/TrailingCommaInArrayLiteral:
Enabled: true
Style/TrailingCommaInHashLiteral:
Enabled: true