event_spec.rb 1.7KB

    require 'spec_helper' describe Event do describe "#reemit" do it "creates a new event identical to itself" do events(:bob_website_agent_event).lat = 2 events(:bob_website_agent_event).lng = 3 events(:bob_website_agent_event).created_at = 2.weeks.ago lambda { events(:bob_website_agent_event).reemit! }.should change { Event.count }.by(1) Event.last.payload.should == events(:bob_website_agent_event).payload Event.last.agent.should == events(:bob_website_agent_event).agent Event.last.lat.should == 2 Event.last.lng.should == 3 Event.last.created_at.to_.should be_within(2).of(Time.now.to_i) end end describe ".cleanup_expired!" do it "removes any Events whose expired_at date is non-null and in the past" do event = agents(:jane_weather_agent).create_event :expires_at => 2.hours.from_now current_time = Time.now stub(Time).now { current_time } Event.cleanup_expired! Event.find_by_id(event.id).should_not be_nil current_time = 119.minutes.from_now Event.cleanup_expired! Event.find_by_id(event.id).should_not be_nil current_time = 2.minutes.from_now Event.cleanup_expired! Event.find_by_id(event.id).should be_nil end it "doesn't touch Events with no expired_at" do event = Event.new event.agent = agents(:jane_weather_agent) event.expires_at = nil event.save! current_time = Time.now stub(Time).now { current_time } Event.cleanup_expired! Event.find_by_id(event.id).should_not be_nil current_time = 2.days.from_now Event.cleanup_expired! Event.find_by_id(event.id).should_not be_nil end end end