123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- require 'rails_helper'
- require 'models/concerns/oauthable'
- describe Agents::WunderlistAgent do
- it_behaves_like Oauthable
- before(:each) do
- @valid_params = {
- 'list_id' => '12345',
- 'title' => '{{title}}: {{url}}',
- }
- @checker = Agents::WunderlistAgent.new(:name => "somename", :options => @valid_params)
- @checker.user = users(:jane)
- @checker.service = services(:generic)
- @checker.save!
- @event = Event.new
- @event.agent = agents(:bob_weather_agent)
- @event.payload = { title: 'hello', url: 'www.example.com'}
- @event.save!
- end
- describe "validating" do
- before do
- expect(@checker).to be_valid
- end
- it "should require the title" do
- @checker.options['title'] = nil
- expect(@checker).not_to be_valid
- end
- it "should require the list_id" do
- @checker.options['list_id'] = nil
- expect(@checker).not_to be_valid
- end
- end
- it "should generate the request_options" do
- expect(@checker.send(:request_options)).to eq({:headers=>{"Content-Type"=>"application/json", "User-Agent"=>"Huginn - https://github.com/huginn/huginn", "X-Access-Token"=>"1234token", "X-Client-ID"=>"wunderoauthkey"}})
- end
- describe "#complete_list_id" do
- it "should return a array of hashes" do
- stub_request(:get, 'https://a.wunderlist.com/api/v1/lists').to_return(
- :body => JSON.dump([{title: 'test', id: 12345}]),
- :headers => {"Content-Type" => "text/json"}
- )
- expect(@checker.complete_list_id).to eq([{:text=>"test (12345)", :id=>12345}])
- end
- end
- describe "#receive" do
- it "send a message to the hipchat" do
- stub_request(:post, 'https://a.wunderlist.com/api/v1/tasks')
- @checker.receive([@event])
- expect(WebMock).to have_requested(:post, "https://a.wunderlist.com/api/v1/tasks")
- end
- end
- describe "#working?" do
- it "should be working with no entry in the error log" do
- expect(@checker).to be_working
- end
- it "should not be working with a recent entry in the error log" do
- @checker.error("test")
- @checker.reload
- @checker.last_event_at = Time.now
- expect(@checker).to_not be_working
- end
- end
- end
|