Sha256: 4408dbf9c04e0c1bdb5a720aee140df207f808e7a619f62cbcbffab865534c19

Contents?: true

Size: 1.99 KB

Versions: 1

Compression:

Stored size: 1.99 KB

Contents

RSpec.describe 'Estimates Integration' do
  before do
    Patch.configure do |config|
      config.access_token = ENV['SANDBOX_API_KEY']
    end
  end

  it 'supports create, retrieve and list' do
    create_estimate_response = Patch::Estimate.create_mass_estimate(mass_g: 100)
    estimate_id = create_estimate_response.data.id

    retrieve_estimate_response = Patch::Estimate.retrieve_estimate(estimate_id)
    expect(retrieve_estimate_response.data.id).to eq estimate_id

    page_limit = 1
    next_page = 1
    estimates = []

    while !next_page.nil? && next_page <= page_limit
      retrieve_estimates_response = Patch::Estimate.retrieve_estimates(page: next_page)
      next_page = retrieve_estimates_response.meta.next_page
      estimates += retrieve_estimates_response.data
    end

    expect(estimates.length).not_to be_zero
  end

  it 'supports creating flight estimates' do
    distance_m = 10_000_000
    flight_estimate = Patch::Estimate.create_flight_estimate(
      distance_m: distance_m,
      create_order: false
    )

    expect(flight_estimate.data.type).to eq 'flight'
    expect(flight_estimate.data.mass_g).to eq 1_032_000
  end

  it 'supports creating vehicle estimates' do
    distance_m = 10_000
    make = "Toyota"
    model = "Prius"
    year = 2000

    vehicle_estimate = Patch::Estimate.create_vehicle_estimate(
      distance_m: distance_m,
      make: make,
      model: model,
      year: year,
      create_order: false
    )

    expect(vehicle_estimate.data.type).to eq 'vehicle'
    expect(vehicle_estimate.data.mass_g).to eq 2_132
  end

  it 'supports creating shipping estimates' do
    distance_m = 100_000_000
    package_mass_g = 10_000
    create_estimate_response = Patch::Estimate.create_shipping_estimate(
      distance_m: distance_m,
      package_mass_g: package_mass_g,
      transportation_method: 'rail',
      create_order: false
    )

    expect(create_estimate_response.data.type).to eq 'shipping'
    expect(create_estimate_response.data.mass_g).to eq 12_431
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
patch_ruby-1.3.0 spec/integration/estimates_spec.rb