webhook_agent_spec.rb 956B

12345678910111213141516171819202122232425262728293031323334
  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.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. end
  28. end
  29. end