Sha256: 5bdfb9ecd157b31219bea7251b105589afd7b83ad6eb95c151e676dff05ad0f9

Contents?: true

Size: 871 Bytes

Versions: 1

Compression:

Stored size: 871 Bytes

Contents

# frozen_string_literal: true

require 'rails_helper'
require 'webmock/rspec'

RSpec.describe Layers::ExternalFetcher do
  context 'retry' do
    it 'retries if a request fails' do
      times = 3
      allow(subject).to receive(:response) do
        raise 'Hiccup' if (times -= 1).positive?
        'THE_RESULT'
      end

      expect(subject.call.first).to eq('THE_RESULT')
    end

    it 'gives up after 3 retries' do
      times = 4
      allow(subject).to receive(:response) do
        raise 'Hiccup' if (times -= 1).positive?
        'Newer reach here'
      end
      expect(subject.call).to(include(status: :internal_server_error))
    end
  end

  it "act's as Shrek, pusing request result forward" do
    stub_request(:get, 'http://enter_real_uri_here.stub/').to_return(status: 200, body: 'MyResult')
    expect(subject.call.first).to eq 'MyResult'
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shrek-0.2.2 examples/tree_pruning/spec/lib/layers/external_fetcher_spec.rb