Sha256: 80efb014a372b0b19abe3db17df4c806274912c31ffd9ee2de75715fab131b43

Contents?: true

Size: 1.97 KB

Versions: 13

Compression:

Stored size: 1.97 KB

Contents

require 'spec_helper'

describe IEX::Resources::Dividends do
  include_context 'client'

  context 'known symbol' do
    context 'with defaults', vcr: { cassette_name: 'dividends/msft' } do
      subject do
        client.dividends('MSFT', '6m')
      end
      let(:dividends) { subject.first }
      it 'retrieves dividends' do
        expect(dividends.ex_date).to eq '2019-05-15'
        expect(dividends.payment_date).to eq '2019-06-13'
        expect(dividends.record_date).to eq '2019-05-16'
        expect(dividends.declared_date).to eq '2019-03-11'
        expect(dividends.amount).to eq 0.46
        expect(dividends.amount_dollar).to eq '$0.46'
        expect(dividends.currency).to eq 'USD'
        expect(dividends.description).to eq 'Microsoft Corp. Declares Quarterly Dividend of $0.46 Per Share'
        expect(dividends.frequency).to eq 'Quarterly'
      end
    end
    context 'without range', vcr: { cassette_name: 'dividends/msft_default_range' } do
      subject do
        client.dividends('MSFT')
      end
      it 'retrieves dividends when no range is passed' do
        expect(subject.size).to eq 1
      end
    end
    context 'invalid range', vcr: { cassette_name: 'dividends/msft_invalid_range' } do
      subject do
        client.dividends('MSFT', 'INVALID')
      end
      let(:dividends) { subject.first }
      it 'retrieves dividends when invalid range is passed' do
        expect(subject.size).to eq 0
      end
    end
    context 'with range', vcr: { cassette_name: 'dividends/msft_1y' } do
      subject do
        client.dividends('MSFT', '1y')
      end
      it 'retrieves dividends with range of 1 year' do
        expect(subject.size).to eq 5
      end
    end
  end
  context 'invalid symbol', vcr: { cassette_name: 'dividends/invalid' } do
    subject do
      client.dividends('INVALID', 'INVALID')
    end
    it 'fails with SymbolNotFoundError' do
      expect { subject }.to raise_error IEX::Errors::SymbolNotFoundError, 'Symbol INVALID Not Found'
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
iex-ruby-client-2.1.0 spec/iex/endpoints/dividends_spec.rb
iex-ruby-client-2.0.0 spec/iex/endpoints/dividends_spec.rb
iex-ruby-client-1.6.0 spec/iex/endpoints/dividends_spec.rb
iex-ruby-client-1.5.0 spec/iex/endpoints/dividends_spec.rb
iex-ruby-client-1.4.1 spec/iex/endpoints/dividends_spec.rb
iex-ruby-client-1.4.0 spec/iex/endpoints/dividends_spec.rb
iex-ruby-client-1.3.0 spec/iex/endpoints/dividends_spec.rb
iex-ruby-client-1.2.0 spec/iex/endpoints/dividends_spec.rb
iex-ruby-client-1.1.2 spec/iex/endpoints/dividends_spec.rb
iex-ruby-client-1.1.1 spec/iex/endpoints/dividends_spec.rb
iex-ruby-client-1.1.0 spec/iex/endpoints/dividends_spec.rb
iex-ruby-client-1.0.1 spec/iex/endpoints/dividends_spec.rb
iex-ruby-client-1.0.0 spec/iex/endpoints/dividends_spec.rb