Sha256: ddfa6befdfc28b6985408d48421fc645dc06970e2253242338d10df01775c129

Contents?: true

Size: 1.27 KB

Versions: 6

Compression:

Stored size: 1.27 KB

Contents

require 'spec_helper'

RSpec.describe PortalConnectors::SafeSettingsHash do
  let(:hash) { PortalConnectors::SafeSettingsHash.new }

  after do
    PortalConnectors.test_mode = false
  end

  it "does not allow access to non-configured keys" do
    expect {
      hash[:btc_wallet]
    }.to raise_error KeyError
  end

  it "does not allow access to nil key" do
    Thread.current[:debugging] = true
    hash[:btc_wallet] = nil

    expect { hash[:btc_wallet] }.to raise_error KeyError
    expect { hash["btc_wallet"] }.to raise_error KeyError
    expect { hash.btc_wallet }.to raise_error KeyError
  end

  it "allow indifferent access" do
    hash[:btc_wallet] = "url1"
    expect(hash[:btc_wallet]).to eq "url1"
    expect(hash["btc_wallet"]).to eq "url1"
    expect(hash.btc_wallet).to eq "url1"
  end

  context "test_mode" do
    context "value set before" do
      it "allows value to be set" do
        hash[:btc_wallet] = "url1"
        PortalConnectors.test_mode = true
        hash[:btc_wallet] = "abc"
        expect(hash.btc_wallet).to eq "abc"
      end
    end

    context "value not set before" do
      it "raises error" do
        PortalConnectors.test_mode = true
        expect {
          hash[:btc_wallet] = "abc"
        }.to raise_error KeyError
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
portal-connectors-0.58.39xc spec/lib/portal-connectors/safe_settings_hash_spec.rb
portal-connectors-0.58.39xb spec/lib/portal-connectors/safe_settings_hash_spec.rb
portal-connectors-0.58.39xa spec/lib/portal-connectors/safe_settings_hash_spec.rb
portal-connectors-0.58.39fj spec/lib/portal-connectors/safe_settings_hash_spec.rb
portal-connectors-0.58.39fg spec/lib/portal-connectors/safe_settings_hash_spec.rb
portal-connectors-0.58.38xn spec/lib/portal-connectors/safe_settings_hash_spec.rb