Sha256: 1ddd7f8810891ce0698910bddc9e214999d9c10fff54025c78d7147d7b344b72

Contents?: true

Size: 1.08 KB

Versions: 3

Compression:

Stored size: 1.08 KB

Contents

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
      # Hello
      def bar
      end
    end

    class RuboCop::Cop::RSpec::Undocumented
      # 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

3 entries across 3 versions & 1 rubygems

Version Path
rubocop-rspec-1.12.0 spec/rubocop/rspec/description_extractor_spec.rb
rubocop-rspec-1.11.0 spec/rubocop/rspec/description_extractor_spec.rb
rubocop-rspec-1.10.0 spec/rubocop/rspec/description_extractor_spec.rb