Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
fieldaware_api / spec / fieldaware_api / clients / customers_spec.rb
Size: Mime:
require 'spec_helper'

RSpec.describe FieldawareApi::Client::Customers do
  before do
    @client = FieldawareApi::Client.new(:api_key => api_key)
  end

  describe '#customers' do
    it 'should contains items per page' do
      VCR.use_cassette('customers') do
        per_page = 3
        items = @client.customers(:pageSize => per_page)
        expect(items).to be_a(Array)
        expect(items.size).to eq(per_page)
      end
    end
    it 'should contains items from start date with pages' do
      VCR.use_cassette('customers-date-pages') do
        dt = Time.new(2015, 12, 28)
        params = {:start_date => dt, :page => 0}
        items = []
        2.times do
          items += @client.customers(params)
          params[:page] += 1
        end
        expect(items.size).to eq(18)
      end
    end
    
    it 'should return nil if the date is tomorrow' do
      items = @client.customers({:start_date => Date.today + 1, :page => 0})
      expect(items).to be_nil
    end

    it 'from start date' do
      VCR.use_cassette('customers_start') do
        dt = Time.new(2015, 12, 25)
        result = @client.customers(:start_date => dt)
        expect(result.size).to eq(18)
      end
    end
    it 'from start to end date' do
      VCR.use_cassette('customers_start_end') do
        dt = Time.new(2015, 12, 10)
        result = @client.customers(:start_date => dt, :end_date => dt)
        expect(result.size).to eq(7)
      end
    end
  end

  describe '#customer' do
    context 'found' do
      before do
        VCR.use_cassette('customer') do
          @uuid = 'd34c752cf6a040a2b3aeb6fcfc70d1be'
          @customer = @client.customer(@uuid)
        end
      end
      it 'should be hash with the same uuid' do
        expect(@customer).to be_a(Hash)
        expect(@customer.uuid).to eq(@uuid)
      end
    end
    context 'not found' do 
      it 'should return an empty customer' do
        VCR.use_cassette('customer-not-found') do
          result = @client.customer(0)
          expect(result).to be_a(Hash)
          expect(result.id).to be_nil
        end
      end
    end
  end

end