123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- require 'rails_helper'
- describe Agents::BoxcarAgent do
- before(:each) do
- @valid_params = {
- 'user_credentials' => 'access_token',
- 'title' => 'Sample Title',
- 'body' => 'Sample Body'
- }
- @checker = Agents::BoxcarAgent.new(:name => "boxcartest", :options => @valid_params)
- @checker.user = users(:bob)
- @checker.save!
- @event = Event.new
- @event.agent = agents(:bob_weather_agent)
- @event.payload = { :body => 'Sample message' }
- @event.save!
- end
- describe 'validating' do
- before do
- expect(@checker).to be_valid
- end
- it "should require access token" do
- @checker.options['user_credentials'] = nil
- expect(@checker).not_to be_valid
- end
- end
- describe '#working?' do
- it "should not be working until the first event was received" do
- expect(@checker).not_to be_working
- @checker.last_receive_at = Time.now
- expect(@checker).to be_working
- end
- end
- describe "#receive" do
- it "sends a message" do
- stub(HTTParty).post { {"id" => 1, "message" => "blah", "title" => "blah","source_name" => "Custom Notification"} }
- @checker.receive([@event])
- end
- it "should raise error when invalid response arrives" do
- stub(HTTParty).post { {"blah" => "blah"} }
- expect { @checker.send_notification({}) }.to raise_error(StandardError, /Invalid response from Boxcar:/)
- end
- it "should raise error when response says unauthorized" do
- stub(HTTParty).post { {"Response" => "Not authorized"} }
- expect { @checker.send_notification({}) }.to raise_error(StandardError, /Not authorized/)
- end
- it "should raise error when response has an error" do
- stub(HTTParty).post { {"error" => {"message" => "Sample error"}} }
- expect { @checker.send_notification({}) }.to raise_error(StandardError, /Sample error/)
- end
- end
- end
|