events_controller_spec.rb 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. require 'spec_helper'
  2. describe EventsController do
  3. before do
  4. Event.where(:user_id => users(:bob).id).count.should > 0
  5. Event.where(:user_id => users(:jane).id).count.should > 0
  6. end
  7. describe "GET index" do
  8. it "only returns Events created by Agents of the current user" do
  9. sign_in users(:bob)
  10. get :index
  11. assigns(:events).all? {|i| i.user.should == users(:bob) }.should be_true
  12. end
  13. it "can filter by Agent" do
  14. sign_in users(:bob)
  15. get :index, :agent => agents(:bob_website_agent)
  16. assigns(:events).length.should == agents(:bob_website_agent).events.length
  17. assigns(:events).all? {|i| i.agent.should == agents(:bob_website_agent) }.should be_true
  18. lambda {
  19. get :index, :agent => agents(:jane_website_agent)
  20. }.should raise_error(ActiveRecord::RecordNotFound)
  21. end
  22. end
  23. describe "GET show" do
  24. it "only shows Events for the current user" do
  25. sign_in users(:bob)
  26. get :show, :id => events(:bob_website_agent_event).to_param
  27. assigns(:event).should eq(events(:bob_website_agent_event))
  28. lambda {
  29. get :show, :id => events(:jane_website_agent_event).to_param
  30. }.should raise_error(ActiveRecord::RecordNotFound)
  31. end
  32. end
  33. describe "POST reemit" do
  34. before do
  35. request.env["HTTP_REFERER"] = "/events"
  36. sign_in users(:bob)
  37. end
  38. it "clones and re-emits events" do
  39. lambda {
  40. post :reemit, :id => events(:bob_website_agent_event).to_param
  41. }.should change { Event.count }.by(1)
  42. Event.last.payload.should == events(:bob_website_agent_event).payload
  43. Event.last.agent.should == events(:bob_website_agent_event).agent
  44. Event.last.created_at.should be_within(1).of(Time.now)
  45. end
  46. it "can only re-emit Events for the current user" do
  47. lambda {
  48. post :reemit, :id => events(:jane_website_agent_event).to_param
  49. }.should raise_error(ActiveRecord::RecordNotFound)
  50. end
  51. end
  52. describe "DELETE destroy" do
  53. it "only deletes events for the current user" do
  54. sign_in users(:bob)
  55. lambda {
  56. delete :destroy, :id => events(:bob_website_agent_event).to_param
  57. }.should change { Event.count }.by(-1)
  58. lambda {
  59. delete :destroy, :id => events(:jane_website_agent_event).to_param
  60. }.should raise_error(ActiveRecord::RecordNotFound)
  61. end
  62. end
  63. end