Remove the `stub_stdout` wrapper around CLI specs (#28340)
This commit is contained in:
		
							parent
							
								
									3a59365e40
								
							
						
					
					
						commit
						8a3d8c6c14
					
				| 
						 | 
				
			
			@ -42,7 +42,13 @@ module Mastodon::CLI
 | 
			
		|||
 | 
			
		||||
      pool      = Concurrent::FixedThreadPool.new(options[:concurrency], max_queue: options[:concurrency] * 10)
 | 
			
		||||
      importers = indices.index_with { |index| "Importer::#{index.name}Importer".constantize.new(batch_size: options[:batch_size], executor: pool) }
 | 
			
		||||
      progress  = ProgressBar.create(total: nil, format: '%t%c/%u |%b%i| %e (%r docs/s)', autofinish: false)
 | 
			
		||||
      progress  = ProgressBar.create(
 | 
			
		||||
        {
 | 
			
		||||
          total: nil,
 | 
			
		||||
          format: '%t%c/%u |%b%i| %e (%r docs/s)',
 | 
			
		||||
          autofinish: false,
 | 
			
		||||
        }.merge(progress_output_options)
 | 
			
		||||
      )
 | 
			
		||||
 | 
			
		||||
      Chewy::Stash::Specification.reset! if options[:reset_chewy]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -116,5 +122,9 @@ module Mastodon::CLI
 | 
			
		|||
      say('Cannot run with this batch_size setting, must be at least 1', :red)
 | 
			
		||||
      exit(1)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def progress_output_options
 | 
			
		||||
      Rails.env.test? ? { output: ProgressBar::Outputs::Null } : {}
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -77,7 +77,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        it_behaves_like 'a new user with given email address and username'
 | 
			
		||||
 | 
			
		||||
        it 'creates a new user with confirmed status' do
 | 
			
		||||
          subject
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to output_results('New password')
 | 
			
		||||
 | 
			
		||||
          user = User.find_by(email: options[:email])
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -95,7 +96,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        it_behaves_like 'a new user with given email address and username'
 | 
			
		||||
 | 
			
		||||
        it 'creates a new user with approved status' do
 | 
			
		||||
          subject
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to output_results('New password')
 | 
			
		||||
 | 
			
		||||
          user = User.find_by(email: options[:email])
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -111,7 +113,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
          it_behaves_like 'a new user with given email address and username'
 | 
			
		||||
 | 
			
		||||
          it 'creates a new user and assigns the specified role' do
 | 
			
		||||
            subject
 | 
			
		||||
            expect { subject }
 | 
			
		||||
              .to output_results('New password')
 | 
			
		||||
 | 
			
		||||
            role = User.find_by(email: options[:email])&.role
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -148,7 +151,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
            let(:options) { { email: 'tootctl_new@example.com', reattach: true, force: true } }
 | 
			
		||||
 | 
			
		||||
            it 'reattaches the account to the new user and deletes the previous user' do
 | 
			
		||||
              subject
 | 
			
		||||
              expect { subject }
 | 
			
		||||
                .to output_results('New password')
 | 
			
		||||
 | 
			
		||||
              user = Account.find_local('tootctl_username')&.user
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -220,7 +224,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
          let(:options) { { role: default_role.name } }
 | 
			
		||||
 | 
			
		||||
          it "updates the user's role to the specified role" do
 | 
			
		||||
            subject
 | 
			
		||||
            expect { subject }
 | 
			
		||||
              .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
            role = user.reload.role
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -235,7 +240,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        let(:user) { Fabricate(:user, role: role) }
 | 
			
		||||
 | 
			
		||||
        it "removes the user's role successfully" do
 | 
			
		||||
          subject
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
          role = user.reload.role
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -248,13 +254,15 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        let(:options) { { email: 'new_email@email.com' } }
 | 
			
		||||
 | 
			
		||||
        it "sets the user's unconfirmed email to the provided email address" do
 | 
			
		||||
          subject
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
          expect(user.reload.unconfirmed_email).to eq(options[:email])
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        it "does not update the user's original email address" do
 | 
			
		||||
          subject
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
          expect(user.reload.email).to eq('old_email@email.com')
 | 
			
		||||
        end
 | 
			
		||||
| 
						 | 
				
			
			@ -264,13 +272,15 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
          let(:options) { { email: 'new_email@email.com', confirm: true } }
 | 
			
		||||
 | 
			
		||||
          it "updates the user's email address to the provided email" do
 | 
			
		||||
            subject
 | 
			
		||||
            expect { subject }
 | 
			
		||||
              .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
            expect(user.reload.email).to eq(options[:email])
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          it "sets the user's email address as confirmed" do
 | 
			
		||||
            subject
 | 
			
		||||
            expect { subject }
 | 
			
		||||
              .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
            expect(user.reload.confirmed?).to be(true)
 | 
			
		||||
          end
 | 
			
		||||
| 
						 | 
				
			
			@ -282,7 +292,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        let(:options) { { confirm: true } }
 | 
			
		||||
 | 
			
		||||
        it "confirms the user's email address" do
 | 
			
		||||
          subject
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
          expect(user.reload.confirmed?).to be(true)
 | 
			
		||||
        end
 | 
			
		||||
| 
						 | 
				
			
			@ -297,7 +308,9 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        end
 | 
			
		||||
 | 
			
		||||
        it 'approves the user' do
 | 
			
		||||
          expect { subject }.to change { user.reload.approved }.from(false).to(true)
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to output_results('OK')
 | 
			
		||||
            .and change { user.reload.approved }.from(false).to(true)
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -306,7 +319,9 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        let(:options) { { disable: true } }
 | 
			
		||||
 | 
			
		||||
        it 'disables the user' do
 | 
			
		||||
          expect { subject }.to change { user.reload.disabled }.from(false).to(true)
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to output_results('OK')
 | 
			
		||||
            .and change { user.reload.disabled }.from(false).to(true)
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -315,7 +330,9 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        let(:options) { { enable: true } }
 | 
			
		||||
 | 
			
		||||
        it 'enables the user' do
 | 
			
		||||
          expect { subject }.to change { user.reload.disabled }.from(true).to(false)
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to output_results('OK')
 | 
			
		||||
            .and change { user.reload.disabled }.from(true).to(false)
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -335,7 +352,9 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        let(:options) { { disable_2fa: true } }
 | 
			
		||||
 | 
			
		||||
        it 'disables the two-factor authentication for the user' do
 | 
			
		||||
          expect { subject }.to change { user.reload.otp_required_for_login }.from(true).to(false)
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to output_results('OK')
 | 
			
		||||
            .and change { user.reload.otp_required_for_login }.from(true).to(false)
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -385,7 +404,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
      let(:arguments) { [account.username] }
 | 
			
		||||
 | 
			
		||||
      it 'deletes the specified user successfully' do
 | 
			
		||||
        subject
 | 
			
		||||
        expect { subject }
 | 
			
		||||
          .to output_results('Deleting')
 | 
			
		||||
 | 
			
		||||
        expect(delete_account_service).to have_received(:call).with(account, reserve_email: false).once
 | 
			
		||||
      end
 | 
			
		||||
| 
						 | 
				
			
			@ -415,7 +435,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
      let(:options) { { email: account.user.email } }
 | 
			
		||||
 | 
			
		||||
      it 'deletes the specified user successfully' do
 | 
			
		||||
        subject
 | 
			
		||||
        expect { subject }
 | 
			
		||||
          .to output_results('Deleting')
 | 
			
		||||
 | 
			
		||||
        expect(delete_account_service).to have_received(:call).with(account, reserve_email: false).once
 | 
			
		||||
      end
 | 
			
		||||
| 
						 | 
				
			
			@ -457,7 +478,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
      let(:options) { { all: true } }
 | 
			
		||||
 | 
			
		||||
      it 'approves all pending registrations' do
 | 
			
		||||
        subject
 | 
			
		||||
        expect { subject }
 | 
			
		||||
          .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
        expect(User.pluck(:approved).all?(true)).to be(true)
 | 
			
		||||
      end
 | 
			
		||||
| 
						 | 
				
			
			@ -468,7 +490,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        let(:options) { { number: 2 } }
 | 
			
		||||
 | 
			
		||||
        it 'approves the earliest n pending registrations but not the remaining ones' do
 | 
			
		||||
          subject
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
          expect(n_earliest_pending_registrations.all?(&:approved?)).to be(true)
 | 
			
		||||
          expect(pending_registrations.all?(&:approved?)).to be(false)
 | 
			
		||||
| 
						 | 
				
			
			@ -498,7 +521,7 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
 | 
			
		||||
        it 'approves all users and does not raise any error' do
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to_not raise_error
 | 
			
		||||
            .to output_results('OK')
 | 
			
		||||
          expect(User.pluck(:approved).all?(true)).to be(true)
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
| 
						 | 
				
			
			@ -510,7 +533,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        let(:arguments) { [user.account.username] }
 | 
			
		||||
 | 
			
		||||
        it 'approves the specified user successfully' do
 | 
			
		||||
          subject
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
          expect(user.reload.approved?).to be(true)
 | 
			
		||||
        end
 | 
			
		||||
| 
						 | 
				
			
			@ -655,7 +679,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        allow(remote_account_example_com).to receive(:reset_avatar!)
 | 
			
		||||
        allow(account_example_net).to receive(:reset_avatar!)
 | 
			
		||||
 | 
			
		||||
        cli.refresh
 | 
			
		||||
        expect { cli.refresh }
 | 
			
		||||
          .to output_results('Refreshed 2 accounts')
 | 
			
		||||
 | 
			
		||||
        expect(cli).to have_received(:parallelize_with_progress).with(scope).once
 | 
			
		||||
        expect(remote_account_example_com).to have_received(:reset_avatar!).once
 | 
			
		||||
| 
						 | 
				
			
			@ -665,7 +690,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
      it 'does not refresh avatar for local accounts' do
 | 
			
		||||
        allow(local_account).to receive(:reset_avatar!)
 | 
			
		||||
 | 
			
		||||
        cli.refresh
 | 
			
		||||
        expect { cli.refresh }
 | 
			
		||||
          .to output_results('Refreshed 2 accounts')
 | 
			
		||||
 | 
			
		||||
        expect(cli).to have_received(:parallelize_with_progress).with(scope).once
 | 
			
		||||
        expect(local_account).to_not have_received(:reset_avatar!)
 | 
			
		||||
| 
						 | 
				
			
			@ -675,7 +701,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        allow(remote_account_example_com).to receive(:reset_header!)
 | 
			
		||||
        allow(account_example_net).to receive(:reset_header!)
 | 
			
		||||
 | 
			
		||||
        cli.refresh
 | 
			
		||||
        expect { cli.refresh }
 | 
			
		||||
          .to output_results('Refreshed 2 accounts')
 | 
			
		||||
 | 
			
		||||
        expect(cli).to have_received(:parallelize_with_progress).with(scope).once
 | 
			
		||||
        expect(remote_account_example_com).to have_received(:reset_header!).once
 | 
			
		||||
| 
						 | 
				
			
			@ -685,7 +712,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
      it 'does not refresh the header for local accounts' do
 | 
			
		||||
        allow(local_account).to receive(:reset_header!)
 | 
			
		||||
 | 
			
		||||
        cli.refresh
 | 
			
		||||
        expect { cli.refresh }
 | 
			
		||||
          .to output_results('Refreshed 2 accounts')
 | 
			
		||||
 | 
			
		||||
        expect(cli).to have_received(:parallelize_with_progress).with(scope).once
 | 
			
		||||
        expect(local_account).to_not have_received(:reset_header!)
 | 
			
		||||
| 
						 | 
				
			
			@ -706,7 +734,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
          allow(remote_account_example_com).to receive(:reset_avatar!)
 | 
			
		||||
          allow(account_example_net).to receive(:reset_avatar!)
 | 
			
		||||
 | 
			
		||||
          cli.refresh
 | 
			
		||||
          expect { cli.refresh }
 | 
			
		||||
            .to output_results('Refreshed 2 accounts')
 | 
			
		||||
 | 
			
		||||
          expect(cli).to have_received(:parallelize_with_progress).with(scope).once
 | 
			
		||||
          expect(local_account).to_not have_received(:reset_avatar!)
 | 
			
		||||
| 
						 | 
				
			
			@ -719,7 +748,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
          allow(remote_account_example_com).to receive(:reset_header!)
 | 
			
		||||
          allow(account_example_net).to receive(:reset_header!)
 | 
			
		||||
 | 
			
		||||
          cli.refresh
 | 
			
		||||
          expect { cli.refresh }
 | 
			
		||||
            .to output_results('Refreshed 2 accounts')
 | 
			
		||||
 | 
			
		||||
          expect(cli).to have_received(:parallelize_with_progress).with(scope).once
 | 
			
		||||
          expect(local_account).to_not have_received(:reset_header!)
 | 
			
		||||
| 
						 | 
				
			
			@ -752,7 +782,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        allow(account_example_com_a).to receive(:reset_avatar!)
 | 
			
		||||
        allow(account_example_com_b).to receive(:reset_avatar!)
 | 
			
		||||
 | 
			
		||||
        cli.refresh(*arguments)
 | 
			
		||||
        expect { cli.refresh(*arguments) }
 | 
			
		||||
          .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
        expect(account_example_com_a).to have_received(:reset_avatar!).once
 | 
			
		||||
        expect(account_example_com_b).to have_received(:reset_avatar!).once
 | 
			
		||||
| 
						 | 
				
			
			@ -761,7 +792,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
      it 'does not reset the avatar for unspecified accounts' do
 | 
			
		||||
        allow(account_example_net).to receive(:reset_avatar!)
 | 
			
		||||
 | 
			
		||||
        cli.refresh(*arguments)
 | 
			
		||||
        expect { cli.refresh(*arguments) }
 | 
			
		||||
          .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
        expect(account_example_net).to_not have_received(:reset_avatar!)
 | 
			
		||||
      end
 | 
			
		||||
| 
						 | 
				
			
			@ -770,7 +802,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        allow(account_example_com_a).to receive(:reset_header!)
 | 
			
		||||
        allow(account_example_com_b).to receive(:reset_header!)
 | 
			
		||||
 | 
			
		||||
        cli.refresh(*arguments)
 | 
			
		||||
        expect { cli.refresh(*arguments) }
 | 
			
		||||
          .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
        expect(account_example_com_a).to have_received(:reset_header!).once
 | 
			
		||||
        expect(account_example_com_b).to have_received(:reset_header!).once
 | 
			
		||||
| 
						 | 
				
			
			@ -779,7 +812,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
      it 'does not reset the header for unspecified accounts' do
 | 
			
		||||
        allow(account_example_net).to receive(:reset_header!)
 | 
			
		||||
 | 
			
		||||
        cli.refresh(*arguments)
 | 
			
		||||
        expect { cli.refresh(*arguments) }
 | 
			
		||||
          .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
        expect(account_example_net).to_not have_received(:reset_header!)
 | 
			
		||||
      end
 | 
			
		||||
| 
						 | 
				
			
			@ -812,7 +846,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
          allow(account_example_com_a).to receive(:reset_avatar!)
 | 
			
		||||
          allow(account_example_com_b).to receive(:reset_avatar!)
 | 
			
		||||
 | 
			
		||||
          cli.refresh(*arguments)
 | 
			
		||||
          expect { cli.refresh(*arguments) }
 | 
			
		||||
            .to output_results('OK (DRY RUN)')
 | 
			
		||||
 | 
			
		||||
          expect(account_example_com_a).to_not have_received(:reset_avatar!)
 | 
			
		||||
          expect(account_example_com_b).to_not have_received(:reset_avatar!)
 | 
			
		||||
| 
						 | 
				
			
			@ -822,7 +857,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
          allow(account_example_com_a).to receive(:reset_header!)
 | 
			
		||||
          allow(account_example_com_b).to receive(:reset_header!)
 | 
			
		||||
 | 
			
		||||
          cli.refresh(*arguments)
 | 
			
		||||
          expect { cli.refresh(*arguments) }
 | 
			
		||||
            .to output_results('OK (DRY RUN)')
 | 
			
		||||
 | 
			
		||||
          expect(account_example_com_a).to_not have_received(:reset_header!)
 | 
			
		||||
          expect(account_example_com_b).to_not have_received(:reset_header!)
 | 
			
		||||
| 
						 | 
				
			
			@ -848,7 +884,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        allow(account_example_com_a).to receive(:reset_avatar!)
 | 
			
		||||
        allow(account_example_com_b).to receive(:reset_avatar!)
 | 
			
		||||
 | 
			
		||||
        cli.refresh
 | 
			
		||||
        expect { cli.refresh }
 | 
			
		||||
          .to output_results('Refreshed 2 accounts')
 | 
			
		||||
 | 
			
		||||
        expect(cli).to have_received(:parallelize_with_progress).with(scope).once
 | 
			
		||||
        expect(account_example_com_a).to have_received(:reset_avatar!).once
 | 
			
		||||
| 
						 | 
				
			
			@ -858,7 +895,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
      it 'does not refresh the avatar for accounts outside specified domain' do
 | 
			
		||||
        allow(account_example_net).to receive(:reset_avatar!)
 | 
			
		||||
 | 
			
		||||
        cli.refresh
 | 
			
		||||
        expect { cli.refresh }
 | 
			
		||||
          .to output_results('Refreshed 2 accounts')
 | 
			
		||||
 | 
			
		||||
        expect(cli).to have_received(:parallelize_with_progress).with(scope).once
 | 
			
		||||
        expect(account_example_net).to_not have_received(:reset_avatar!)
 | 
			
		||||
| 
						 | 
				
			
			@ -868,7 +906,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        allow(account_example_com_a).to receive(:reset_header!)
 | 
			
		||||
        allow(account_example_com_b).to receive(:reset_header!)
 | 
			
		||||
 | 
			
		||||
        cli.refresh
 | 
			
		||||
        expect { cli.refresh }
 | 
			
		||||
          .to output_results('Refreshed 2 accounts')
 | 
			
		||||
 | 
			
		||||
        expect(cli).to have_received(:parallelize_with_progress).with(scope)
 | 
			
		||||
        expect(account_example_com_a).to have_received(:reset_header!).once
 | 
			
		||||
| 
						 | 
				
			
			@ -878,7 +917,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
      it 'does not refresh the header for accounts outside specified domain' do
 | 
			
		||||
        allow(account_example_net).to receive(:reset_header!)
 | 
			
		||||
 | 
			
		||||
        cli.refresh
 | 
			
		||||
        expect { cli.refresh }
 | 
			
		||||
          .to output_results('Refreshed 2 accounts')
 | 
			
		||||
 | 
			
		||||
        expect(cli).to have_received(:parallelize_with_progress).with(scope).once
 | 
			
		||||
        expect(account_example_net).to_not have_received(:reset_header!)
 | 
			
		||||
| 
						 | 
				
			
			@ -913,7 +953,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        old_private_key = account.private_key
 | 
			
		||||
        old_public_key = account.public_key
 | 
			
		||||
 | 
			
		||||
        subject
 | 
			
		||||
        expect { subject }
 | 
			
		||||
          .to output_results('OK')
 | 
			
		||||
        account.reload
 | 
			
		||||
 | 
			
		||||
        expect(account.private_key).to_not eq(old_private_key)
 | 
			
		||||
| 
						 | 
				
			
			@ -923,7 +964,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
      it 'broadcasts the new keys for the specified account' do
 | 
			
		||||
        allow(ActivityPub::UpdateDistributionWorker).to receive(:perform_in)
 | 
			
		||||
 | 
			
		||||
        subject
 | 
			
		||||
        expect { subject }
 | 
			
		||||
          .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
        expect(ActivityPub::UpdateDistributionWorker).to have_received(:perform_in).with(anything, account.id, anything).once
 | 
			
		||||
      end
 | 
			
		||||
| 
						 | 
				
			
			@ -947,7 +989,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        old_private_keys = accounts.map(&:private_key)
 | 
			
		||||
        old_public_keys = accounts.map(&:public_key)
 | 
			
		||||
 | 
			
		||||
        subject
 | 
			
		||||
        expect { subject }
 | 
			
		||||
          .to output_results('rotated')
 | 
			
		||||
        accounts.each(&:reload)
 | 
			
		||||
 | 
			
		||||
        expect(accounts.map(&:private_key)).to_not eq(old_private_keys)
 | 
			
		||||
| 
						 | 
				
			
			@ -957,7 +1000,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
      it 'broadcasts the new keys for each account' do
 | 
			
		||||
        allow(ActivityPub::UpdateDistributionWorker).to receive(:perform_in)
 | 
			
		||||
 | 
			
		||||
        subject
 | 
			
		||||
        expect { subject }
 | 
			
		||||
          .to output_results('rotated')
 | 
			
		||||
 | 
			
		||||
        accounts.each do |account|
 | 
			
		||||
          expect(ActivityPub::UpdateDistributionWorker).to have_received(:perform_in).with(anything, account.id, anything).once
 | 
			
		||||
| 
						 | 
				
			
			@ -1036,7 +1080,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        end
 | 
			
		||||
 | 
			
		||||
        it 'merges `from_account` into `to_account` and deletes `from_account`' do
 | 
			
		||||
          subject
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
          expect(to_account).to have_received(:merge_with!).with(from_account).once
 | 
			
		||||
          expect(from_account).to have_received(:destroy).once
 | 
			
		||||
| 
						 | 
				
			
			@ -1059,7 +1104,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
      end
 | 
			
		||||
 | 
			
		||||
      it 'merges "from_account" into "to_account" and deletes from_account' do
 | 
			
		||||
        subject
 | 
			
		||||
        expect { subject }
 | 
			
		||||
          .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
        expect(to_account).to have_received(:merge_with!).with(from_account).once
 | 
			
		||||
        expect(from_account).to have_received(:destroy)
 | 
			
		||||
| 
						 | 
				
			
			@ -1339,7 +1385,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
 | 
			
		||||
    shared_examples 'a successful migration' do
 | 
			
		||||
      it 'calls the MoveService for the last migration' do
 | 
			
		||||
        subject
 | 
			
		||||
        expect { subject }
 | 
			
		||||
          .to output_results('OK')
 | 
			
		||||
 | 
			
		||||
        last_migration = source_account.migrations.last
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1449,7 +1496,8 @@ describe Mastodon::CLI::Accounts do
 | 
			
		|||
        end
 | 
			
		||||
 | 
			
		||||
        it 'creates a migration for the specified account with the target account' do
 | 
			
		||||
          subject
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to output_results('migrated')
 | 
			
		||||
 | 
			
		||||
          last_migration = source_account.migrations.last
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -78,7 +78,8 @@ describe Mastodon::CLI::IpBlocks do
 | 
			
		|||
 | 
			
		||||
        it 'overwrites the existing IP block record' do
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to change { blocked_ip.reload.severity }
 | 
			
		||||
            .to output_results('Added 11')
 | 
			
		||||
            .and change { blocked_ip.reload.severity }
 | 
			
		||||
            .from('no_access')
 | 
			
		||||
            .to('sign_up_requires_approval')
 | 
			
		||||
        end
 | 
			
		||||
| 
						 | 
				
			
			@ -189,7 +190,8 @@ describe Mastodon::CLI::IpBlocks do
 | 
			
		|||
      let(:options) { { force: true } }
 | 
			
		||||
 | 
			
		||||
      it 'removes blocks for IP ranges that cover given IP(s) and keeps other ranges' do
 | 
			
		||||
        subject
 | 
			
		||||
        expect { subject }
 | 
			
		||||
          .to output_results('Removed 2')
 | 
			
		||||
 | 
			
		||||
        expect(covered_ranges).to_not exist
 | 
			
		||||
        expect(other_ranges).to exist
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,7 +41,8 @@ describe Mastodon::CLI::Settings do
 | 
			
		|||
 | 
			
		||||
        it 'changes registrations_mode and require_invite_text' do
 | 
			
		||||
          expect { subject }
 | 
			
		||||
            .to change(Setting, :registrations_mode).from(nil).to('approved')
 | 
			
		||||
            .to output_results('OK')
 | 
			
		||||
            .and change(Setting, :registrations_mode).from(nil).to('approved')
 | 
			
		||||
            .and change(Setting, :require_invite_text).from(false).to(true)
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -104,7 +104,6 @@ RSpec.configure do |config|
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  config.before :each, type: :cli do
 | 
			
		||||
    stub_stdout
 | 
			
		||||
    stub_reset_connection_pools
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -163,14 +162,6 @@ def attachment_fixture(name)
 | 
			
		|||
  Rails.root.join('spec', 'fixtures', 'files', name).open
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
def stub_stdout
 | 
			
		||||
  # TODO: Is there a bettery way to:
 | 
			
		||||
  # - Avoid CLI command output being printed out
 | 
			
		||||
  # - Allow rspec to assert things against STDOUT
 | 
			
		||||
  # - Avoid disabling stdout for other desirable output (deprecation warnings, for example)
 | 
			
		||||
  allow($stdout).to receive(:write)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
def stub_reset_connection_pools
 | 
			
		||||
  # TODO: Is there a better way to correctly run specs without stubbing this?
 | 
			
		||||
  # (Avoids reset_connection_pools! in test env)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue