require "test_helper" class Event::ActivitySummaryTest < ActiveSupport::TestCase include VcrTestHelper setup do @events = Event.limit(3) freeze_timestamps end test "create summaries only once for a given set of events" do summary = assert_difference -> { Event::ActivitySummary.count }, +1 do Event::ActivitySummary.create_for(@events) end assert_no_difference -> { Event::ActivitySummary.count } do assert_equal summary, Event::ActivitySummary.create_for(@events) assert_equal summary, Event::ActivitySummary.create_for(@events.order("action desc").where(id: @events.ids)) # order does not matter end end test "fetching a existing summary" do assert_nil Event::ActivitySummary.for(@events) summary = Event::ActivitySummary.create_for(@events) assert_equal summary, Event::ActivitySummary.for(@events) end test "getting an HTML summary for a set of events" do summary = Event::ActivitySummary.create_for(@events) assert_includes summary.to_html, "layout" end end