google_flights_spec.rb 2.9KB

    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', '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