Sha256: 6154ac5196b4c25ff7c91d2b3f6005a2f8d7824d6179047e9d84d26396812f9c

Contents?: true

Size: 1.32 KB

Versions: 24

Compression:

Stored size: 1.32 KB

Contents

RSpec.describe RuboCop::Cop::RSpec::ExampleLength, :config do
  subject(:cop) { described_class.new(config) }

  let(:cop_config) { { 'Max' => 3 } }

  it 'ignores non-spec blocks' do
    expect_no_offenses(<<-RUBY)
      foo do
        line 1
        line 2
        line 3
        line 4
      end
    RUBY
  end

  it 'allows an empty example' do
    expect_no_offenses(<<-RUBY)
      it do
      end
    RUBY
  end

  it 'allows a short example' do
    expect_no_offenses(<<-RUBY)
      it do
        line 1
        line 2
        line 3
      end
    RUBY
  end

  it 'ignores comments' do
    expect_no_offenses(<<-RUBY)
      it do
        line 1
        line 2
        # comment
        line 3
      end
    RUBY
  end

  context 'when inspecting large examples' do
    it 'flags the example' do
      expect_offense(<<-RUBY)
        it do
        ^^^^^ Example has too many lines [4/3].
          line 1
          line 2
          line 3
          line 4
        end
      RUBY
    end
  end

  context 'with CountComments enabled' do
    let(:cop_config) do
      { 'Max' => 3, 'CountComments' => true }
    end

    it 'flags the example' do
      expect_offense(<<-RUBY)
        it do
        ^^^^^ Example has too many lines [4/3].
          line 1
          line 2
          # comment
          line 3
        end
      RUBY
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
rubocop-rspec-1.18.0 spec/rubocop/cop/rspec/example_length_spec.rb
rubocop-rspec-1.17.1 spec/rubocop/cop/rspec/example_length_spec.rb
rubocop-rspec-1.17.0 spec/rubocop/cop/rspec/example_length_spec.rb
rubocop-rspec-1.16.0 spec/rubocop/cop/rspec/example_length_spec.rb