34 lines
1.0 KiB
Ruby
34 lines
1.0 KiB
Ruby
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
|