events_controller_spec.rb 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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 Agents for 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 "DELETE destroy" do
  34. it "only deletes events for the current user" do
  35. sign_in users(:bob)
  36. lambda {
  37. delete :destroy, :id => events(:bob_website_agent_event).to_param
  38. }.should change { Event.count }.by(-1)
  39. lambda {
  40. delete :destroy, :id => events(:jane_website_agent_event).to_param
  41. }.should raise_error(ActiveRecord::RecordNotFound)
  42. end
  43. end
  44. end