Sha256: 142b1aa532a173e38678b378e5b5a39291a69b87c83873e7d6c0ed3ac80f544a

Contents?: true

Size: 1.15 KB

Versions: 2

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true
require 'date'

RSpec.describe SoapyBing::Ads::Reports::CampaignPerformanceReport do
  let(:report_options) { { oauth_credentials: nil, account: nil } }
  subject { described_class.new report_options }

  describe '#initialize' do
    let(:wrong_date) { 'wrong_date' }

    context 'when there is a wrong date format' do
      before { report_options.merge!(date_start: wrong_date) }

      let(:start_date) { 'wrong_date' }
      it 'throws exception' do
        expect { subject }.to raise_error(ArgumentError, 'invalid date')
      end
    end
  end

  describe '#date_range' do
    let(:date_start) { '2011-01-01' }
    let(:date_end) { '2015-12-31' }
    before { report_options.merge!(date_start: date_start, date_end: date_end) }

    it 'is instance of Range' do
      expect(subject.date_range).to be_an_instance_of Range
    end

    context 'begin' do
      it 'keeps initialized value' do
        expect(subject.date_range.begin).to eq Date.parse(date_start)
      end
    end

    context 'end' do
      it 'keeps initialized value' do
        expect(subject.date_range.end).to eq Date.parse(date_end)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
soapy_bing-0.1.0 spec/soapy_bing/ads/reports/campaign_performance_report_spec.rb
soapy_bing-0.0.5 spec/soapy_bing/ads/reports/campaign_performance_report_spec.rb