Merge pull request #698 from basecamp/flavorjones/activity-loading
Fix activity feed loading
This commit is contained in:
@@ -4,6 +4,8 @@ module Card::Statuses
|
||||
included do
|
||||
enum :status, %w[ creating drafted published ].index_by(&:itself)
|
||||
|
||||
after_create -> { track_event :published }, if: :published?
|
||||
|
||||
scope :published_or_drafted_by, ->(user) { where(status: :published).or(where(status: :drafted, creator: user)) }
|
||||
end
|
||||
|
||||
|
||||
@@ -36,5 +36,5 @@
|
||||
</header>
|
||||
<div class="events" id="activity">
|
||||
<%= render "events/day", day_timeline: @day_timeline %>
|
||||
<%= event_next_page_link(@day_timeline.next_day) %>
|
||||
</div>
|
||||
<%= event_next_page_link(@day_timeline.next_day) %>
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
raise "Seeding is just for development" unless Rails.env.development?
|
||||
|
||||
require "active_support/testing/time_helpers"
|
||||
include ActiveSupport::Testing::TimeHelpers
|
||||
|
||||
# Seed DSL
|
||||
def seed_account(name)
|
||||
print " #{name}…"
|
||||
|
||||
+15
-5
@@ -50,19 +50,29 @@ collections = [
|
||||
"Documentation"
|
||||
]
|
||||
|
||||
time_range = (60 .. 30.days.in_minutes)
|
||||
|
||||
collections.each_with_index do |collection_name, index|
|
||||
create_collection(collection_name, access_to: authors.sample(3)).tap do |collection|
|
||||
# Create 20 unique cards for each collection
|
||||
card_titles.each do |title|
|
||||
create_card(title,
|
||||
description: "#{title} for #{collection_name} phase #{index + 1}.",
|
||||
collection: collection
|
||||
).tap do |card|
|
||||
travel(-rand(time_range).minutes) do
|
||||
card = create_card title,
|
||||
description: "#{title} for #{collection_name} phase #{index + 1}.",
|
||||
collection: collection,
|
||||
creator: authors.sample
|
||||
|
||||
# Randomly assign to 1-2 authors
|
||||
travel rand(0..20).minutes
|
||||
card.toggle_assignment(authors.sample)
|
||||
card.toggle_assignment(authors.sample) if rand > 0.5
|
||||
|
||||
if rand > 0.5
|
||||
travel rand(0..20).minutes
|
||||
card.toggle_assignment(authors.sample)
|
||||
end
|
||||
|
||||
# Randomly set card state
|
||||
travel rand(0..20).minutes
|
||||
case rand(3)
|
||||
when 0
|
||||
card.engage
|
||||
|
||||
@@ -25,6 +25,33 @@ class Card::StatusesTest < ActiveSupport::TestCase
|
||||
assert_includes Card.published_or_drafted_by(users(:jz)), card
|
||||
end
|
||||
|
||||
test "an event is created when a card is created in the published state" do
|
||||
Current.session = sessions(:david)
|
||||
|
||||
assert_no_difference(-> { Event.count }) do
|
||||
collections(:writebook).cards.create! creator: users(:kevin), title: "Draft Card"
|
||||
end
|
||||
|
||||
assert_difference(-> { Event.count } => +1) do
|
||||
@card = collections(:writebook).cards.create! creator: users(:kevin), title: "Published Card", status: :published
|
||||
end
|
||||
|
||||
assert_equal @card, Event.last.eventable
|
||||
assert_equal "card_published", Event.last.action
|
||||
end
|
||||
|
||||
test "an event is created when a card is published" do
|
||||
Current.session = sessions(:david)
|
||||
|
||||
card = collections(:writebook).cards.create! creator: users(:kevin), title: "Published Card"
|
||||
assert_difference(-> { Event.count } => +1) do
|
||||
card.publish
|
||||
end
|
||||
|
||||
assert_equal card, Event.last.eventable
|
||||
assert_equal "card_published", Event.last.action
|
||||
end
|
||||
|
||||
test "can_recover_abandoned_creation?" do
|
||||
card = collections(:writebook).cards.create! creator: users(:kevin)
|
||||
unsaved_card = collections(:writebook).cards.new creator: users(:kevin)
|
||||
|
||||
Reference in New Issue
Block a user