diff options
author | David Yip <yipdw@member.fsf.org> | 2018-01-17 18:37:09 -0600 |
---|---|---|
committer | David Yip <yipdw@member.fsf.org> | 2018-01-17 18:37:09 -0600 |
commit | 201e82686f86d06e10afb62184a091417b09d5ad (patch) | |
tree | 419565a2dae93e2fa5bd06726265ff1c457dbaa1 /spec/controllers | |
parent | aa2bf07281ba1e41c9e32a760684c15081524a7c (diff) | |
parent | 7badad7797b487b411a2ab34e0f7413741974bb4 (diff) |
Merge remote-tracking branch 'origin/master' into merge-upstream
Conflicts: app/javascript/styles/mastodon/components.scss
Diffstat (limited to 'spec/controllers')
-rw-r--r-- | spec/controllers/concerns/user_tracking_concern_spec.rb | 40 |
1 files changed, 32 insertions, 8 deletions
diff --git a/spec/controllers/concerns/user_tracking_concern_spec.rb b/spec/controllers/concerns/user_tracking_concern_spec.rb index 168d44ba6..d08095ef8 100644 --- a/spec/controllers/concerns/user_tracking_concern_spec.rb +++ b/spec/controllers/concerns/user_tracking_concern_spec.rb @@ -43,15 +43,39 @@ describe ApplicationController, type: :controller do expect_updated_sign_in_at(user) end - it 'regenerates feed when sign in is older than two weeks' do - allow(RegenerationWorker).to receive(:perform_async) - user.update(current_sign_in_at: 3.weeks.ago) - sign_in user, scope: :user - get :show + describe 'feed regeneration' do + before do + alice = Fabricate(:account) + bob = Fabricate(:account) - expect_updated_sign_in_at(user) - expect(Redis.current.get("account:#{user.account_id}:regeneration")).to eq 'true' - expect(RegenerationWorker).to have_received(:perform_async) + user.account.follow!(alice) + user.account.follow!(bob) + + Fabricate(:status, account: alice, text: 'hello world') + Fabricate(:status, account: bob, text: 'yes hello') + Fabricate(:status, account: user.account, text: 'test') + + user.update(last_sign_in_at: 'Tue, 04 Jul 2017 14:45:56 UTC +00:00', current_sign_in_at: 'Wed, 05 Jul 2017 22:10:52 UTC +00:00') + + sign_in user, scope: :user + end + + it 'sets a regeneration marker while regenerating' do + allow(RegenerationWorker).to receive(:perform_async) + get :show + + expect_updated_sign_in_at(user) + expect(Redis.current.get("account:#{user.account_id}:regeneration")).to eq 'true' + expect(RegenerationWorker).to have_received(:perform_async) + end + + it 'regenerates feed when sign in is older than two weeks' do + get :show + + expect_updated_sign_in_at(user) + expect(Redis.current.zcard(FeedManager.instance.key(:home, user.account_id))).to eq 3 + expect(Redis.current.get("account:#{user.account_id}:regeneration")).to be_nil + end end def expect_updated_sign_in_at(user) |