Sha256: 601a7f9454ba061e8b86fb3c56bcb806df920077eb1b780ceafab855a38c2b56

Contents?: true

Size: 1.37 KB

Versions: 19

Compression:

Stored size: 1.37 KB

Contents

RSpec.describe Gorynich::Fetchers::Consul do
  let(:storage) { Faker::Lorem.word }

  context '#storage' do
    subject { described_class.new(storage: storage) }

    it do
      expect(subject.storage).to eq(storage)
    end
  end

  context '#consul_opts' do
    let(:consul_opts) { { Faker::Lorem.word.to_sym => Faker::Lorem.word } }

    subject { described_class.new(storage: storage, **consul_opts) }

    it do
      expect(subject.consul_opts).to eq(consul_opts)
    end
  end

  context '#fetch' do
    let(:consul_host) { Faker::Internet.url }
    let(:consul_opts) { { http_addr: consul_host } }

    def consul_request(response, code = 200)
      stub_request(:get, "#{consul_host}/v1/kv/#{storage}?recurse=true")
        .to_return(
          status: code,
          body: response
        )
    end

    subject { described_class.new(storage: storage, **consul_opts) }

    describe 'when consul return data' do
      let(:response) { [{ 'Key' => "#{storage}/test_key", 'Value' => Base64.encode64('test') }].to_json }

      before(:each) do
        consul_request(response)
      end

      it do
        expect(subject.fetch).to eq({ 'test_key' => 'test' })
      end
    end

    describe 'when http error' do
      before(:each) do
        consul_request([], 500)
      end

      it do
        expect { subject.fetch }.to raise_error(Diplomat::UnknownStatus)
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
gorynich-1.3.6.289376 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.3.5.288811 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.3.4.273062 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.3.3.231946 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.3.2.231715 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.3.1.213701 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.3.0.213297 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.2.3.198656 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.2.2.198643 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.2.1.184916 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.2.0.180668 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.1.1.148381 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.1.0.142168 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.1.0.142154 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.1.0.142147 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.1.0.142142 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.1.0.142139 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.1.0.142136 spec/lib/gorynich/fetchers/consul_spec.rb
gorynich-1.1.0.142046 spec/lib/gorynich/fetchers/consul_spec.rb