Sha256: ba75447105f39169b48c051db78ab039bf08888c9b0de6d295d567b2ee13b356

Contents?: true

Size: 1.28 KB

Versions: 9

Compression:

Stored size: 1.28 KB

Contents

require_relative '../../spec_helper'
require_lib 'reek/smell_detectors/long_yield_list'

RSpec.describe Reek::SmellDetectors::LongYieldList do
  it 'reports the right values' do
    src = <<-RUBY
      class Alfa
        def bravo(charlie, delta, echo, foxtrot)
          yield charlie, delta, echo, foxtrot
        end
      end
    RUBY

    expect(src).to reek_of(:LongYieldList,
                           lines:   [3],
                           context: 'Alfa#bravo',
                           message: 'yields 4 parameters',
                           source:  'string',
                           count:   4)
  end

  it 'does count all occurences' do
    src = <<-RUBY
      class Alfa
        def bravo(charlie, delta, echo, foxtrot)
          yield charlie, delta, echo, foxtrot
        end

        def golf(hotel, india, juliett, kilo)
          yield hotel, india, juliett, kilo
        end
      end
    RUBY

    expect(src).
      to reek_of(:LongYieldList, lines: [3], context: 'Alfa#bravo').
      and reek_of(:LongYieldList, lines: [7], context: 'Alfa#golf')
  end

  it 'does not report yield with 3 parameters' do
    src = <<-RUBY
      def alfa(bravo, charlie, delta)
        yield bravo, charlie, delta
      end
    RUBY

    expect(src).not_to reek_of(:LongYieldList)
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
reek-6.0.3 spec/reek/smell_detectors/long_yield_list_spec.rb
reek-6.0.2 spec/reek/smell_detectors/long_yield_list_spec.rb
reek-6.0.1 spec/reek/smell_detectors/long_yield_list_spec.rb
reek-6.0.0 spec/reek/smell_detectors/long_yield_list_spec.rb
reek-5.6.0 spec/reek/smell_detectors/long_yield_list_spec.rb
reek-5.5.0 spec/reek/smell_detectors/long_yield_list_spec.rb
reek-5.4.1 spec/reek/smell_detectors/long_yield_list_spec.rb
reek-5.4.0 spec/reek/smell_detectors/long_yield_list_spec.rb
reek-5.3.2 spec/reek/smell_detectors/long_yield_list_spec.rb