Sha256: bce2866f632ceb60270e20b73a3cd149118be2339285bca7b5b6db0f80d608ea

Contents?: true

Size: 1.27 KB

Versions: 4

Compression:

Stored size: 1.27 KB

Contents

# frozen_string_literal: true

require 'yard'

require 'rubocop/rspec/description_extractor'

RSpec.describe RuboCop::RSpec::DescriptionExtractor do
  let(:yardocs) do
    YARD.parse_string(<<-RUBY)
      # This is not a cop
      class RuboCop::Cop::Mixin::Sneaky
      end

      # This is not a concrete cop
      #
      # @abstract
      class RuboCop::Cop::RSpec::Cop
      end

      # Checks foo
      #
      # Some description
      #
      # @note only works with foo
      class RuboCop::Cop::RSpec::Foo < RuboCop::Cop::RSpec::Cop
        # Hello
        def bar
        end

        # :nodoc:
        class HelperClassForFoo
        end
      end

      class RuboCop::Cop::RSpec::Undocumented < RuboCop::Cop::RSpec::Cop
        # Hello
        def bar
        end
      end
    RUBY

    YARD::Registry.all
  end

  def stub_cop_const(name)
    stub_const(
      "RuboCop::Cop::RSpec::#{name}",
      Class.new(RuboCop::Cop.const_get(:WorkaroundCop))
    )
  end

  before do
    stub_cop_const('Foo')
    stub_cop_const('Undocumented')
  end

  it 'builds a hash of descriptions' do
    expect(described_class.new(yardocs).to_h).to eql(
      'RSpec/Foo'          => { 'Description' => 'Checks foo' },
      'RSpec/Undocumented' => { 'Description' => ''           }
    )
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rubocop-rspec-1.35.0 spec/rubocop/rspec/description_extractor_spec.rb
rubocop-rspec-1.34.1 spec/rubocop/rspec/description_extractor_spec.rb
rubocop-rspec-1.34.0 spec/rubocop/rspec/description_extractor_spec.rb
rubocop-rspec-1.33.0 spec/rubocop/rspec/description_extractor_spec.rb