class RuboCop::Cop::RSpec::LeadingSubject
end
end
expect(subject.valid?).to be(true)
it ‘is valid’ do
let(:params) { blah }
subject { described_class.new(params) }
RSpec.describe User do
# good
end
end
expect(subject.valid?).to be(true)
it ‘is valid’ do
subject { described_class.new(params) }
let(:params) { blah }
RSpec.describe User do
# bad
@example
Checks for ‘subject` definitions that come after `let` definitions.
def in_spec_block?(node)
def in_spec_block?(node) node.each_ancestor(:block).any? do |ancestor| Examples::ALL.include?(ancestor.method_name) end end
def on_block(node)
def on_block(node) return unless subject?(node) && !in_spec_block?(node) node.parent.each_child_node do |sibling| break if sibling.equal?(node) if sibling.method_name.equal?(:let) break add_offense(node, :expression) end end end