Sha256: b60c97cd185426aeff0a5daa7dac6370fd9ac3c6aa40742bf0eec8143778ec95

Contents?: true

Size: 1.5 KB

Versions: 4

Compression:

Stored size: 1.5 KB

Contents

require 'spec_helper'

describe IEX::Endpoints::FX do
  include_context 'client'

  context 'known symbol', vcr: { cassette_name: 'fx/latest_one_symbol' } do
    subject do
      client.fx_latest('USDCAD')
    end
    it 'retrieves a list of CurrencyRates' do
      expect(subject.length).to eq 1

      expect(subject[0].symbol).to eq 'USDCAD'
      expect(subject[0].rate).to eq 1.25674
      expect(subject[0].timestamp).to eq Date.strptime('1627045829.863', '%s')
    end
  end

  context 'known symbols', vcr: { cassette_name: 'fx/latest' } do
    subject do
      client.fx_latest(%w[USDCAD USDGBP USDJPY])
    end
    it 'retrieves a list of CurrencyRates' do
      expect(subject.length).to eq 3

      expect(subject[0].symbol).to eq 'USDCAD'
      expect(subject[0].rate).to eq 1.25674
      expect(subject[0].timestamp).to eq Date.strptime('1627045829.863', '%s')

      expect(subject[1].symbol).to eq 'USDGBP'
      expect(subject[1].rate).to eq 0.7262111386264443
      expect(subject[1].timestamp).to eq Date.strptime('1627045780.863', '%s')

      expect(subject[2].symbol).to eq 'USDJPY'
      expect(subject[2].rate).to eq 110.426
      expect(subject[2].timestamp).to eq Date.strptime('1627045825.365', '%s')
    end
  end

  context 'invalid symbol', vcr: { cassette_name: 'fx/invalid' } do
    subject do
      client.fx_latest(%w[INVALID])
    end
    it 'fails with InvalidSymbolsList' do
      expect { subject }.to raise_error IEX::Errors::InvalidSymbolsList, 'Invalid symbol list: INVALID'
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
iex-ruby-client-2.1.0 spec/iex/endpoints/fx_spec.rb
iex-ruby-client-2.0.0 spec/iex/endpoints/fx_spec.rb
iex-ruby-client-1.6.0 spec/iex/endpoints/fx_spec.rb
iex-ruby-client-1.5.0 spec/iex/endpoints/fx_spec.rb