Sha256: 1967e8a7e3aaac50524cd0fdfe3fed1e68705d9803facef8e5aab873ed4dd08f

Contents?: true

Size: 1.26 KB

Versions: 58

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/settings_provider'

RSpec.describe ::EacRubyUtils::SettingsProvider do
  let(:stub_class) do
    the_described_class = described_class
    r = ::Class.new do
      include the_described_class

      def key_a
        'method_a'
      end

      def key_b
        'method_b'
      end

      def settings
        { 'key_b' => 'setting_b', key_c: 'setting_c' }
      end
    end
    r.const_set(:KEY_A, 'constant_a')
    r.const_set(:KEY_D, 'constant_d')
    r
  end

  let(:stub) { stub_class.new }

  describe '#setting_value' do
    {
      ['key_a'] => 'method_a',
      [:key_b] => 'setting_b',
      ['key_b', { order: %w[constant method settings_object] }] => 'method_b',
      ['key_c'] => 'setting_c',
      ['key_d'] => 'constant_d'
    }.each do |args, expected_value|
      it { expect(stub.setting_value(*args)).to eq(expected_value) }
    end

    it do
      expect { stub.setting_value('key_e') }.to raise_error(::StandardError)
    end

    it do
      expect(stub.setting_value('key_e', required: false)).to eq(nil)
    end

    it do
      expect(stub.setting_value('key_e', default: nil)).to eq(nil)
    end

    it do
      expect(stub.setting_value('key_e', default: 'default_e')).to eq('default_e')
    end
  end
end

Version data entries

58 entries across 58 versions & 2 rubygems

Version Path
eac_tools-0.41.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.40.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.39.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.38.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.37.2 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.37.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.37.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.36.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.36.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.35.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.34.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.33.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.32.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.31.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.31.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.30.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.29.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.28.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.27.2 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.27.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb