Sha256: 8620716c88407513eee5325373570ee102ff26f026ab06c0fd91f2a9e906f871

Contents?: true

Size: 1.35 KB

Versions: 2

Compression:

Stored size: 1.35 KB

Contents

# frozen_string_literal: true

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

  it 'flags nested contexts' do
    expect_violation(<<-RUBY)
      describe MyClass do
        context 'when foo' do
          context 'when bar' do
          ^^^^^^^^^^^^^^^^^^ Maximum example group nesting exceeded
            context 'when baz' do
            ^^^^^^^^^^^^^^^^^^ Maximum example group nesting exceeded
            end
          end
        end

        context 'when qux' do
          context 'when norf' do
          ^^^^^^^^^^^^^^^^^^^ Maximum example group nesting exceeded
          end
        end
      end
    RUBY
  end

  it 'ignores non-spec context methods' do
    expect_no_violations(<<-RUBY)
      class MyThingy
        context 'this is not rspec' do
          context 'but it uses contexts' do
          end
        end
      end
    RUBY
  end

  context 'when MaxNesting is configured as 3' do
    let(:cop_config) { { 'MaxNesting' => '3' } }

    it 'only flags third level of nesting' do
      expect_violation(<<-RUBY)
        describe MyClass do
          context 'when foo' do
            context 'when bar' do
              context 'when baz' do
              ^^^^^^^^^^^^^^^^^^ Maximum example group nesting exceeded
              end
            end
          end
        end
      RUBY
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rubocop-rspec-1.9.0 spec/rubocop/cop/rspec/nested_groups_spec.rb
rubocop-rspec-1.8.0 spec/rubocop/cop/rspec/nested_groups_spec.rb