diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/controllers/auth/confirmations_controller_spec.rb | 18 | ||||
-rw-r--r-- | spec/services/bootstrap_timeline_service_spec.rb | 37 |
2 files changed, 55 insertions, 0 deletions
diff --git a/spec/controllers/auth/confirmations_controller_spec.rb b/spec/controllers/auth/confirmations_controller_spec.rb index cf7f91e52..2ec36c060 100644 --- a/spec/controllers/auth/confirmations_controller_spec.rb +++ b/spec/controllers/auth/confirmations_controller_spec.rb @@ -10,4 +10,22 @@ describe Auth::ConfirmationsController, type: :controller do expect(response).to have_http_status(:success) end end + + describe 'GET #show' do + let!(:user) { Fabricate(:user, confirmation_token: 'foobar', confirmed_at: nil) } + + before do + allow(BootstrapTimelineWorker).to receive(:perform_async) + @request.env['devise.mapping'] = Devise.mappings[:user] + get :show, params: { confirmation_token: 'foobar' } + end + + it 'redirects to login' do + expect(response).to redirect_to(new_user_session_path) + end + + it 'queues up bootstrapping of home timeline' do + expect(BootstrapTimelineWorker).to have_received(:perform_async).with(user.account_id) + end + end end diff --git a/spec/services/bootstrap_timeline_service_spec.rb b/spec/services/bootstrap_timeline_service_spec.rb new file mode 100644 index 000000000..5189b1de8 --- /dev/null +++ b/spec/services/bootstrap_timeline_service_spec.rb @@ -0,0 +1,37 @@ +require 'rails_helper' + +RSpec.describe BootstrapTimelineService do + subject { described_class.new } + + describe '#call' do + let(:source_account) { Fabricate(:account) } + + context 'when setting is empty' do + let!(:admin) { Fabricate(:user, admin: true) } + + before do + Setting.bootstrap_timeline_accounts = nil + subject.call(source_account) + end + + it 'follows admin accounts from account' do + expect(source_account.following?(admin.account)).to be true + end + end + + context 'when setting is set' do + let!(:alice) { Fabricate(:account, username: 'alice') } + let!(:bob) { Fabricate(:account, username: 'bob') } + + before do + Setting.bootstrap_timeline_accounts = 'alice, bob' + subject.call(source_account) + end + + it 'follows found accounts from account' do + expect(source_account.following?(alice)).to be true + expect(source_account.following?(bob)).to be true + end + end + end +end |