webhook_agent_spec.rb 1.0KB

1234567891011121314151617181920212223242526272829303132333435
  1. require 'spec_helper'
  2. describe Agents::WebhookAgent do
  3. let(:agent) do
  4. _agent = Agents::WebhookAgent.new(:name => 'webhook',
  5. :options => {:secret => :foobar, :payload_path => '$'})
  6. _agent.user = users(:bob)
  7. _agent.save!
  8. _agent
  9. end
  10. let(:payload) { {:some => :info} }
  11. after { agent.destroy }
  12. describe 'receive_webhook' do
  13. it 'should create event if secret matches' do
  14. out = nil
  15. lambda {
  16. out = agent.receive_webhook({:secret => :foobar, :payload => payload})
  17. }.should change { Event.count }.by(1)
  18. out.should eq(['Event Created', 201])
  19. Event.last.last.payload.should eq([{'payload' => payload}])
  20. end
  21. it 'should not create event if secrets dont match' do
  22. out = nil
  23. lambda {
  24. out = agent.receive_webhook({:secret => :bazbat, :payload => payload})
  25. }.should change { Event.count }.by(0)
  26. out.should eq(['Not Authorized', 401])
  27. Event.last.last.payload.should eq([{'payload' => payload}])
  28. end
  29. end
  30. end