Sha256: da91c4aee6e35dc3a1c1ebbfa689106fcff83d4e78327afc53c7b5e8a2de4da6

Contents?: true

Size: 1.89 KB

Versions: 27

Compression:

Stored size: 1.89 KB

Contents

require_relative '../spec_helper'
require_lib 'reek/smell_configuration'

RSpec.describe Reek::SmellConfiguration do
  context 'when overriding default configs' do
    let(:base_config) do
      {
        'accept'  => ['_'],
        'enabled' => true,
        'exclude' => [],
        'reject'  => [/^.$/, /[0-9]$/, /[A-Z]/]
      }
    end

    let(:smell_config) { described_class.new(base_config) }

    it { expect(smell_config.merge({})).to eq(base_config) }
    it { expect(smell_config.merge('enabled' => true)).to eq(base_config) }
    it { expect(smell_config.merge('exclude' => [])).to eq(base_config) }
    it { expect(smell_config.merge('accept' => ['_'])).to eq(base_config) }
    it do
      updated = smell_config.merge('reject' => [/^.$/, /[0-9]$/, /[A-Z]/])
      expect(updated).to eq(base_config)
    end
    it do
      updated = smell_config.merge('accept' => ['_'], 'enabled' => true)
      expect(updated).to eq(base_config)
    end

    it 'overrides single values' do
      updated = smell_config.merge('enabled' => false)
      expect(updated).to eq('accept'  => ['_'],
                            'enabled' => false,
                            'exclude' => [],
                            'reject'  => [/^.$/, /[0-9]$/, /[A-Z]/])
    end

    it 'overrides arrays of values' do
      updated = smell_config.merge('reject' => [/^.$/, /[3-9]$/])
      expect(updated).to eq('accept'  => ['_'],
                            'enabled' => true,
                            'exclude' => [],
                            'reject'  => [/^.$/, /[3-9]$/])
    end

    it 'overrides multiple values' do
      updated = smell_config.merge('accept' => [/[A-Z]$/], 'enabled' => false)
      expect(updated).to eq('accept'  => [/[A-Z]$/],
                            'enabled' => false,
                            'exclude' => [],
                            'reject'  => [/^.$/, /[0-9]$/, /[A-Z]/])
    end
  end
end

Version data entries

27 entries across 25 versions & 2 rubygems

Version Path
reek-4.6.2 spec/reek/smell_configuration_spec.rb
reek-4.6.1 spec/reek/smell_configuration_spec.rb
reek-4.6.0 spec/reek/smell_configuration_spec.rb
reek-4.5.6 spec/reek/smell_configuration_spec.rb
reek-4.5.5 spec/reek/smell_configuration_spec.rb
reek-4.5.4 spec/reek/smell_configuration_spec.rb
reek-4.5.3 spec/reek/smell_configuration_spec.rb