123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- require 'rails_helper'
- describe Agents::GoogleFlightsAgent do
- before do
- stub_request(:post, "https://www.googleapis.com/qpxExpress/v1/trips/search?key=800deeaf-e285-9d62-bc90-j999c1973cc9").to_return(
- :body => File.read(Rails.root.join("spec/data_fixtures/qpx.json")),
- :status => 200,
- :headers => {"Content-Type" => "application/json"}
- )
- @opts = {
- 'qpx_api_key' => '800deeaf-e285-9d62-bc90-j999c1973cc9',
- 'adultCount' => 1,
- 'origin' => 'BOS',
- 'destination' => 'SFO',
- 'date' => '2016-04-11',
- 'preferredCabin' => 'COACH',
- 'childCount' => 0,
- 'infantInSeatCount' => 0,
- 'infantInLapCount'=> 0,
- 'seniorCount'=> 0,
- 'solutions'=> 3
- }
- @checker = Agents::GoogleFlightsAgent.new(:name => "tectonic", :options => @opts)
- @checker.user = users(:bob)
- @checker.save!
- end
- describe '#helpers' do
- it "should generate the correct events url" do
- expect(@checker.send(:event_url)).to eq("https://www.googleapis.com/qpxExpress/v1/trips/search?key=800deeaf-e285-9d62-bc90-j999c1973cc9")
- end
- end
- describe "#that checker should be valid" do
- it "should check that the object is valid" do
- expect(@checker).to be_valid
- end
- it "should require credentials" do
- @checker.options['qpx_api_key'] = nil
- expect(@checker).not_to be_valid
- end
- it "should require adultCount" do
- @checker.options['adultCount'] = nil
- expect(@checker).not_to be_valid
- end
- it "should require Origin" do
- @checker.options['origin'] = nil
- expect(@checker).not_to be_valid
- end
- it "should require Destination" do
- @checker.options['destination'] = nil
- expect(@checker).not_to be_valid
- end
- it "should require Date" do
- @checker.options['date'] = nil
- expect(@checker).not_to be_valid
- end
- it "should require childCount" do
- @checker.options['childCount'] = nil
- expect(@checker).not_to be_valid
- end
- it "should require Infant In Seat Count" do
- @checker.options['infantInSeatCount'] = nil
- expect(@checker).not_to be_valid
- end
- it "should require Infant In Lab Count" do
- @checker.options['infantInLapCount'] = nil
- expect(@checker).not_to be_valid
- end
- it "should require Senior Count" do
- @checker.options['seniorCount'] = nil
- expect(@checker).not_to be_valid
- end
- it "should require Solutions" do
- @checker.options['solutions'] = nil
- expect(@checker).not_to be_valid
- end
- it "should require Return Date" do
- @checker.options['roundtrip'] = true
- @checker.options['return_date'] = nil
- expect(@checker).not_to be_valid
- end
- end
- describe '#check' do
- it "should check that initial run creates an event" do
- @checker.memory[:latestTicketingTime] = '2016-03-24T23:59-04:00'
- expect { @checker.check }.to change { Event.count }.by(1)
- end
- end
- end
|