2015-10-11 17:41:23 +08:00
|
|
|
require 'rails_helper'
|
2014-08-18 15:13:10 +08:00
|
|
|
|
|
|
|
describe TopicFeaturedUsers do
|
2016-06-22 00:59:33 +08:00
|
|
|
it 'ensures consistency' do
|
2014-08-18 15:13:10 +08:00
|
|
|
|
|
|
|
t = Fabricate(:topic)
|
2018-06-05 15:29:17 +08:00
|
|
|
Fabricate(:post, topic: t, user: t.user)
|
|
|
|
p2 = Fabricate(:post, topic: t)
|
|
|
|
p3 = Fabricate(:post, topic: t, user: p2.user)
|
|
|
|
p4 = Fabricate(:post, topic: t)
|
|
|
|
p5 = Fabricate(:post, topic: t)
|
2014-08-18 15:13:10 +08:00
|
|
|
|
|
|
|
t.update_columns(featured_user1_id: 66,
|
|
|
|
featured_user2_id: 70,
|
|
|
|
featured_user3_id: 12,
|
|
|
|
featured_user4_id: 7,
|
2016-06-22 00:59:33 +08:00
|
|
|
last_post_user_id: p5.user_id)
|
2014-08-18 15:13:10 +08:00
|
|
|
|
|
|
|
TopicFeaturedUsers.ensure_consistency!
|
|
|
|
t.reload
|
|
|
|
|
2014-12-31 22:55:03 +08:00
|
|
|
expect(t.featured_user1_id).to eq(p2.user_id)
|
|
|
|
expect(t.featured_user2_id).to eq(p4.user_id)
|
|
|
|
expect(t.featured_user3_id).to eq(nil)
|
|
|
|
expect(t.featured_user4_id).to eq(nil)
|
2014-08-18 15:13:10 +08:00
|
|
|
|
2016-06-22 00:59:33 +08:00
|
|
|
# after removing a post
|
|
|
|
p2.update_column(:deleted_at, Time.now)
|
|
|
|
p3.update_column(:hidden, true)
|
|
|
|
|
|
|
|
TopicFeaturedUsers.ensure_consistency!
|
|
|
|
t.reload
|
2014-08-18 15:13:10 +08:00
|
|
|
|
2016-06-22 00:59:33 +08:00
|
|
|
expect(t.featured_user1_id).to eq(p4.user_id)
|
|
|
|
expect(t.featured_user2_id).to eq(nil)
|
|
|
|
expect(t.featured_user3_id).to eq(nil)
|
|
|
|
expect(t.featured_user4_id).to eq(nil)
|
2014-08-18 15:13:10 +08:00
|
|
|
end
|
|
|
|
end
|