event_spec.rb 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. require 'spec_helper'
  2. describe Event do
  3. describe "#reemit" do
  4. it "creates a new event identical to itself" do
  5. events(:bob_website_agent_event).lat = 2
  6. events(:bob_website_agent_event).lng = 3
  7. events(:bob_website_agent_event).created_at = 2.weeks.ago
  8. lambda {
  9. events(:bob_website_agent_event).reemit!
  10. }.should change { Event.count }.by(1)
  11. Event.last.payload.should == events(:bob_website_agent_event).payload
  12. Event.last.agent.should == events(:bob_website_agent_event).agent
  13. Event.last.lat.should == 2
  14. Event.last.lng.should == 3
  15. Event.last.created_at.should be_within(1).of(Time.now)
  16. end
  17. end
  18. describe ".cleanup_expired!" do
  19. it "removes any Events whose expired_at date is non-null and in the past" do
  20. event = agents(:jane_weather_agent).create_event :expires_at => 2.hours.from_now
  21. current_time = Time.now
  22. stub(Time).now { current_time }
  23. Event.cleanup_expired!
  24. Event.find_by_id(event.id).should_not be_nil
  25. current_time = 119.minutes.from_now
  26. Event.cleanup_expired!
  27. Event.find_by_id(event.id).should_not be_nil
  28. current_time = 2.minutes.from_now
  29. Event.cleanup_expired!
  30. Event.find_by_id(event.id).should be_nil
  31. end
  32. it "doesn't touch Events with no expired_at" do
  33. event = Event.new
  34. event.agent = agents(:jane_weather_agent)
  35. event.expires_at = nil
  36. event.save!
  37. current_time = Time.now
  38. stub(Time).now { current_time }
  39. Event.cleanup_expired!
  40. Event.find_by_id(event.id).should_not be_nil
  41. current_time = 2.days.from_now
  42. Event.cleanup_expired!
  43. Event.find_by_id(event.id).should_not be_nil
  44. end
  45. end
  46. end