Sha256: 65080c84a8b6a7adbf34737fbc67c530f37cfc80a2b5c55e684496acaa4994a3

Contents?: true

Size: 1.38 KB

Versions: 60

Compression:

Stored size: 1.38 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 key_f
        nil
      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',
      ['key_f'] => nil
    }.each do |args, expected_value|
      context "when args are \"#{args}\"" do
        it { expect(stub.setting_value(*args)).to eq(expected_value) }
      end
    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

60 entries across 60 versions & 1 rubygems

Version Path
eac_tools-0.76.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.76.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.75.2 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.75.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.75.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.74.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.74.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.73.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.72.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.70.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.70.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.69.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.69.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.68.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.67.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.67.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.66.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.65.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.65.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
eac_tools-0.64.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb