Sha256: f2e7fe4e7d541033a95a6ecc737d4bd62e2ad87f924954af19cb8aa9a494d08d

Contents?: true

Size: 1.89 KB

Versions: 7

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

7 entries across 7 versions & 1 rubygems

Version Path
reek-6.0.3 spec/reek/smell_configuration_spec.rb
reek-6.0.2 spec/reek/smell_configuration_spec.rb
reek-6.0.1 spec/reek/smell_configuration_spec.rb
reek-6.0.0 spec/reek/smell_configuration_spec.rb
reek-5.6.0 spec/reek/smell_configuration_spec.rb
reek-5.5.0 spec/reek/smell_configuration_spec.rb
reek-5.4.1 spec/reek/smell_configuration_spec.rb