Sha256: 1133d29064fe6818adeb599601be386c84f6b6d039195f2cb07181bcb141c7cf

Contents?: true

Size: 1010 Bytes

Versions: 5

Compression:

Stored size: 1010 Bytes

Contents

# frozen_string_literal: true

require 'analysers_test_helper'
require 'rubycritic/analysers/smells/reek'

describe RubyCritic::Analyser::ReekSmells do
  context 'when analysing a smelly file' do
    before do
      pathname = Pathname.new('test/samples/reek/smelly.rb')
      @analysed_module = AnalysedModuleDouble.new(pathname: pathname, smells: [])
      analysed_modules = [@analysed_module]
      RubyCritic::Analyser::ReekSmells.new(analysed_modules).run
    end

    it 'detects its smells' do
      @analysed_module.smells.length.must_equal 2
    end

    it 'respects the .reek file' do
      messages = @analysed_module.smells.map(&:message)
      messages.wont_include "has the parameter name 'a'"
    end

    it 'creates smells with messages' do
      first_smell = @analysed_module.smells.first
      first_smell.message.must_equal "has boolean parameter 'reek'"

      last_smell = @analysed_module.smells.last
      last_smell.message.must_equal 'has no descriptive comment'
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rubycritic-3.4.0 test/lib/rubycritic/analysers/smells/reek_test.rb
rubycritic-3.3.0 test/lib/rubycritic/analysers/smells/reek_test.rb
rubycritic-3.2.3 test/lib/rubycritic/analysers/smells/reek_test.rb
rubycritic-3.2.2 test/lib/rubycritic/analysers/smells/reek_test.rb
rubycritic-3.2.1 test/lib/rubycritic/analysers/smells/reek_test.rb