2024-03-27 09:16:00 -06:00
|
|
|
require "test_helper"
|
2024-07-08 09:04:59 -04:00
|
|
|
require "ostruct"
|
2024-03-27 09:16:00 -06:00
|
|
|
|
|
|
|
class Provider::SynthTest < ActiveSupport::TestCase
|
|
|
|
include ExchangeRateProviderInterfaceTest
|
|
|
|
|
|
|
|
setup do
|
2024-07-08 09:04:59 -04:00
|
|
|
@subject = @synth = Provider::Synth.new("fookey")
|
|
|
|
end
|
|
|
|
|
|
|
|
test "retries then provides failed response" do
|
|
|
|
Faraday.expects(:get).returns(OpenStruct.new(success?: false)).times(3)
|
|
|
|
|
|
|
|
response = @synth.fetch_exchange_rate from: "USD", to: "MXN", date: Date.current
|
|
|
|
|
|
|
|
assert_match "Failed to fetch exchange rate from Provider::Synth", response.error.message
|
|
|
|
end
|
|
|
|
|
|
|
|
test "retrying, then raising on network error" do
|
|
|
|
Faraday.expects(:get).raises(Faraday::TimeoutError).times(3)
|
|
|
|
|
|
|
|
assert_raises Faraday::TimeoutError do
|
|
|
|
@synth.fetch_exchange_rate from: "USD", to: "MXN", date: Date.current
|
|
|
|
end
|
2024-03-27 09:16:00 -06:00
|
|
|
end
|
|
|
|
end
|