~cytrogen/masto-fe

a3393d0d07117c2b049f15310313b449f059f490 — Nick Schonning 2 years ago 91a8cd2
Autofix Rubocop RSpec/MatchArray (#24050)

M .rubocop_todo.yml => .rubocop_todo.yml +0 -23
@@ 779,29 779,6 @@ RSpec/LetSetup:
    - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb'
    - 'spec/workers/scheduler/user_cleanup_scheduler_spec.rb'

# This cop supports safe autocorrection (--autocorrect).
RSpec/MatchArray:
  Exclude:
    - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb'
    - 'spec/controllers/admin/export_domain_blocks_controller_spec.rb'
    - 'spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb'
    - 'spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb'
    - 'spec/controllers/api/v1/accounts/statuses_controller_spec.rb'
    - 'spec/controllers/api/v1/bookmarks_controller_spec.rb'
    - 'spec/controllers/api/v1/favourites_controller_spec.rb'
    - 'spec/controllers/api/v1/reports_controller_spec.rb'
    - 'spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb'
    - 'spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb'
    - 'spec/models/account_filter_spec.rb'
    - 'spec/models/account_spec.rb'
    - 'spec/models/account_statuses_cleanup_policy_spec.rb'
    - 'spec/models/custom_emoji_filter_spec.rb'
    - 'spec/models/status_spec.rb'
    - 'spec/models/user_spec.rb'
    - 'spec/presenters/familiar_followers_presenter_spec.rb'
    - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb'
    - 'spec/services/update_status_service_spec.rb'

RSpec/MessageChain:
  Exclude:
    - 'spec/controllers/api/v1/media_controller_spec.rb'

M spec/controllers/activitypub/followers_synchronizations_controller_spec.rb => spec/controllers/activitypub/followers_synchronizations_controller_spec.rb +1 -1
@@ 50,7 50,7 @@ RSpec.describe ActivityPub::FollowersSynchronizationsController, type: :controll

      it 'returns orderedItems with followers from example.com' do
        expect(body[:orderedItems]).to be_an Array
        expect(body[:orderedItems]).to match_array([follower_4.uri, follower_1.uri, follower_2.uri])
        expect(body[:orderedItems]).to contain_exactly(follower_4.uri, follower_1.uri, follower_2.uri)
      end

      it 'returns private Cache-Control header' do

M spec/controllers/admin/export_domain_blocks_controller_spec.rb => spec/controllers/admin/export_domain_blocks_controller_spec.rb +2 -2
@@ 29,7 29,7 @@ RSpec.describe Admin::ExportDomainBlocksController, type: :controller do
      end

      it 'renders page with expected domain blocks' do
        expect(assigns(:domain_blocks).map { |block| [block.domain, block.severity.to_sym] }).to match_array [['bad.domain', :silence], ['worse.domain', :suspend], ['reject.media', :noop]]
        expect(assigns(:domain_blocks).map { |block| [block.domain, block.severity.to_sym] }).to contain_exactly(['bad.domain', :silence], ['worse.domain', :suspend], ['reject.media', :noop])
      end

      it 'returns http success' do


@@ 43,7 43,7 @@ RSpec.describe Admin::ExportDomainBlocksController, type: :controller do
      end

      it 'renders page with expected domain blocks' do
        expect(assigns(:domain_blocks).map { |block| [block.domain, block.severity.to_sym] }).to match_array [['bad.domain', :suspend], ['worse.domain', :suspend], ['reject.media', :suspend]]
        expect(assigns(:domain_blocks).map { |block| [block.domain, block.severity.to_sym] }).to contain_exactly(['bad.domain', :suspend], ['worse.domain', :suspend], ['reject.media', :suspend])
      end

      it 'returns http success' do

M spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb => spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb +2 -2
@@ 28,7 28,7 @@ describe Api::V1::Accounts::FollowerAccountsController do
      get :index, params: { account_id: account.id, limit: 2 }

      expect(body_as_json.size).to eq 2
      expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s])
      expect([body_as_json[0][:id], body_as_json[1][:id]]).to contain_exactly(alice.id.to_s, bob.id.to_s)
    end

    it 'does not return blocked users' do


@@ 58,7 58,7 @@ describe Api::V1::Accounts::FollowerAccountsController do
        get :index, params: { account_id: account.id, limit: 2 }

        expect(body_as_json.size).to eq 2
        expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s])
        expect([body_as_json[0][:id], body_as_json[1][:id]]).to contain_exactly(alice.id.to_s, bob.id.to_s)
      end
    end
  end

M spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb => spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb +2 -2
@@ 28,7 28,7 @@ describe Api::V1::Accounts::FollowingAccountsController do
      get :index, params: { account_id: account.id, limit: 2 }

      expect(body_as_json.size).to eq 2
      expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s])
      expect([body_as_json[0][:id], body_as_json[1][:id]]).to contain_exactly(alice.id.to_s, bob.id.to_s)
    end

    it 'does not return blocked users' do


@@ 58,7 58,7 @@ describe Api::V1::Accounts::FollowingAccountsController do
        get :index, params: { account_id: account.id, limit: 2 }

        expect(body_as_json.size).to eq 2
        expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s])
        expect([body_as_json[0][:id], body_as_json[1][:id]]).to contain_exactly(alice.id.to_s, bob.id.to_s)
      end
    end
  end

M spec/controllers/api/v1/accounts/statuses_controller_spec.rb => spec/controllers/api/v1/accounts/statuses_controller_spec.rb +1 -1
@@ 99,7 99,7 @@ describe Api::V1::Accounts::StatusesController do
        it 'lists both the public and the private statuses' do
          get :index, params: { account_id: account.id, pinned: true }
          json = body_as_json
          expect(json.map { |item| item[:id].to_i }).to match_array([status.id, private_status.id])
          expect(json.map { |item| item[:id].to_i }).to contain_exactly(status.id, private_status.id)
        end
      end
    end

M spec/controllers/api/v1/bookmarks_controller_spec.rb => spec/controllers/api/v1/bookmarks_controller_spec.rb +1 -1
@@ 57,7 57,7 @@ RSpec.describe Api::V1::BookmarksController, type: :controller do

          get :index

          expect(assigns(:statuses)).to match_array [bookmarked_by_user.status]
          expect(assigns(:statuses)).to contain_exactly(bookmarked_by_user.status)
        end

        it 'adds pagination headers if necessary' do

M spec/controllers/api/v1/favourites_controller_spec.rb => spec/controllers/api/v1/favourites_controller_spec.rb +1 -1
@@ 57,7 57,7 @@ RSpec.describe Api::V1::FavouritesController, type: :controller do

          get :index

          expect(assigns(:statuses)).to match_array [favourite_by_user.status]
          expect(assigns(:statuses)).to contain_exactly(favourite_by_user.status)
        end

        it 'adds pagination headers if necessary' do

M spec/controllers/api/v1/reports_controller_spec.rb => spec/controllers/api/v1/reports_controller_spec.rb +1 -1
@@ 69,7 69,7 @@ RSpec.describe Api::V1::ReportsController, type: :controller do
      end

      it 'saves rule_ids' do
        expect(target_account.targeted_reports.first.rule_ids).to match_array([rule.id])
        expect(target_account.targeted_reports.first.rule_ids).to contain_exactly(rule.id)
      end
    end
  end

M spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb => spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb +1 -1
@@ 33,7 33,7 @@ RSpec.describe Api::V1::Statuses::FavouritedByAccountsController, type: :control
      it 'returns accounts who favorited the status' do
        get :index, params: { status_id: status.id, limit: 2 }
        expect(body_as_json.size).to eq 2
        expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s])
        expect([body_as_json[0][:id], body_as_json[1][:id]]).to contain_exactly(alice.id.to_s, bob.id.to_s)
      end

      it 'does not return blocked users' do

M spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb => spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb +1 -1
@@ 33,7 33,7 @@ RSpec.describe Api::V1::Statuses::RebloggedByAccountsController, type: :controll
      it 'returns accounts who reblogged the status' do
        get :index, params: { status_id: status.id, limit: 2 }
        expect(body_as_json.size).to eq 2
        expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s])
        expect([body_as_json[0][:id], body_as_json[1][:id]]).to contain_exactly(alice.id.to_s, bob.id.to_s)
      end

      it 'does not return blocked users' do

M spec/models/account_filter_spec.rb => spec/models/account_filter_spec.rb +4 -4
@@ 26,22 26,22 @@ describe AccountFilter do

    it 'works with domain first and origin remote' do
      filter = described_class.new(by_domain: 'example.org', origin: 'remote')
      expect(filter.results).to match_array [remote_account_one]
      expect(filter.results).to contain_exactly(remote_account_one)
    end

    it 'works with domain last and origin remote' do
      filter = described_class.new(origin: 'remote', by_domain: 'example.org')
      expect(filter.results).to match_array [remote_account_one]
      expect(filter.results).to contain_exactly(remote_account_one)
    end

    it 'works with domain first and origin local' do
      filter = described_class.new(by_domain: 'example.org', origin: 'local')
      expect(filter.results).to match_array [local_account]
      expect(filter.results).to contain_exactly(local_account)
    end

    it 'works with domain last and origin local' do
      filter = described_class.new(origin: 'local', by_domain: 'example.org')
      expect(filter.results).to match_array [remote_account_one]
      expect(filter.results).to contain_exactly(remote_account_one)
    end
  end


M spec/models/account_spec.rb => spec/models/account_spec.rb +7 -7
@@ 339,7 339,7 @@ RSpec.describe Account, type: :model do
    it 'returns the domains blocked by the account' do
      account = Fabricate(:account)
      account.block_domain!('domain')
      expect(account.excluded_from_timeline_domains).to match_array ['domain']
      expect(account.excluded_from_timeline_domains).to contain_exactly('domain')
    end
  end



@@ 877,7 877,7 @@ RSpec.describe Account, type: :model do
      it 'returns an array of accounts who have a domain' do
        account_1 = Fabricate(:account, domain: nil)
        account_2 = Fabricate(:account, domain: 'example.com')
        expect(Account.remote).to match_array([account_2])
        expect(Account.remote).to contain_exactly(account_2)
      end
    end



@@ 885,7 885,7 @@ RSpec.describe Account, type: :model do
      it 'returns an array of accounts who do not have a domain' do
        account_1 = Fabricate(:account, domain: nil)
        account_2 = Fabricate(:account, domain: 'example.com')
        expect(Account.where('id > 0').local).to match_array([account_1])
        expect(Account.where('id > 0').local).to contain_exactly(account_1)
      end
    end



@@ 911,7 911,7 @@ RSpec.describe Account, type: :model do
      it 'returns an array of accounts who are silenced' do
        account_1 = Fabricate(:account, silenced: true)
        account_2 = Fabricate(:account, silenced: false)
        expect(Account.silenced).to match_array([account_1])
        expect(Account.silenced).to contain_exactly(account_1)
      end
    end



@@ 919,7 919,7 @@ RSpec.describe Account, type: :model do
      it 'returns an array of accounts who are suspended' do
        account_1 = Fabricate(:account, suspended: true)
        account_2 = Fabricate(:account, suspended: false)
        expect(Account.suspended).to match_array([account_1])
        expect(Account.suspended).to contain_exactly(account_1)
      end
    end



@@ 941,11 941,11 @@ RSpec.describe Account, type: :model do
      end

      it 'returns every usable non-suspended account' do
        expect(Account.searchable).to match_array([silenced_local, silenced_remote, local_account, remote_account])
        expect(Account.searchable).to contain_exactly(silenced_local, silenced_remote, local_account, remote_account)
      end

      it 'does not mess with previously-applied scopes' do
        expect(Account.where.not(id: remote_account.id).searchable).to match_array([silenced_local, silenced_remote, local_account])
        expect(Account.where.not(id: remote_account.id).searchable).to contain_exactly(silenced_local, silenced_remote, local_account)
      end
    end
  end

M spec/models/account_statuses_cleanup_policy_spec.rb => spec/models/account_statuses_cleanup_policy_spec.rb +1 -1
@@ 496,7 496,7 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
      end

      it 'returns only normal statuses for deletion' do
        expect(subject.pluck(:id)).to match_array([very_old_status.id, faved4.id, faved5.id, reblogged4.id, reblogged5.id])
        expect(subject.pluck(:id)).to contain_exactly(very_old_status.id, faved4.id, faved5.id, reblogged4.id, reblogged5.id)
      end
    end


M spec/models/custom_emoji_filter_spec.rb => spec/models/custom_emoji_filter_spec.rb +5 -5
@@ 16,7 16,7 @@ RSpec.describe CustomEmojiFilter do

        it 'returns ActiveRecord::Relation' do
          expect(subject).to be_a(ActiveRecord::Relation)
          expect(subject).to match_array([custom_emoji_2])
          expect(subject).to contain_exactly(custom_emoji_2)
        end
      end



@@ 25,7 25,7 @@ RSpec.describe CustomEmojiFilter do

        it 'returns ActiveRecord::Relation' do
          expect(subject).to be_a(ActiveRecord::Relation)
          expect(subject).to match_array([custom_emoji_0, custom_emoji_1])
          expect(subject).to contain_exactly(custom_emoji_0, custom_emoji_1)
        end
      end



@@ 34,7 34,7 @@ RSpec.describe CustomEmojiFilter do

        it 'returns ActiveRecord::Relation' do
          expect(subject).to be_a(ActiveRecord::Relation)
          expect(subject).to match_array([custom_emoji_0])
          expect(subject).to contain_exactly(custom_emoji_0)
        end
      end



@@ 43,7 43,7 @@ RSpec.describe CustomEmojiFilter do

        it 'returns ActiveRecord::Relation' do
          expect(subject).to be_a(ActiveRecord::Relation)
          expect(subject).to match_array([custom_emoji_2])
          expect(subject).to contain_exactly(custom_emoji_2)
        end
      end



@@ 63,7 63,7 @@ RSpec.describe CustomEmojiFilter do

      it 'returns ActiveRecord::Relation' do
        expect(subject).to be_a(ActiveRecord::Relation)
        expect(subject).to match_array([custom_emoji_0, custom_emoji_1, custom_emoji_2])
        expect(subject).to contain_exactly(custom_emoji_0, custom_emoji_1, custom_emoji_2)
      end
    end
  end

M spec/models/status_spec.rb => spec/models/status_spec.rb +16 -16
@@ 265,17 265,17 @@ RSpec.describe Status, type: :model do

    context 'when given one tag' do
      it 'returns the expected statuses' do
        expect(Status.tagged_with([tag1.id]).reorder(:id).pluck(:id).uniq).to match_array([status1.id, status5.id])
        expect(Status.tagged_with([tag2.id]).reorder(:id).pluck(:id).uniq).to match_array([status2.id, status5.id])
        expect(Status.tagged_with([tag3.id]).reorder(:id).pluck(:id).uniq).to match_array([status3.id, status5.id])
        expect(Status.tagged_with([tag1.id]).reorder(:id).pluck(:id).uniq).to contain_exactly(status1.id, status5.id)
        expect(Status.tagged_with([tag2.id]).reorder(:id).pluck(:id).uniq).to contain_exactly(status2.id, status5.id)
        expect(Status.tagged_with([tag3.id]).reorder(:id).pluck(:id).uniq).to contain_exactly(status3.id, status5.id)
      end
    end

    context 'when given multiple tags' do
      it 'returns the expected statuses' do
        expect(Status.tagged_with([tag1.id, tag2.id]).reorder(:id).pluck(:id).uniq).to match_array([status1.id, status2.id, status5.id])
        expect(Status.tagged_with([tag1.id, tag3.id]).reorder(:id).pluck(:id).uniq).to match_array([status1.id, status3.id, status5.id])
        expect(Status.tagged_with([tag2.id, tag3.id]).reorder(:id).pluck(:id).uniq).to match_array([status2.id, status3.id, status5.id])
        expect(Status.tagged_with([tag1.id, tag2.id]).reorder(:id).pluck(:id).uniq).to contain_exactly(status1.id, status2.id, status5.id)
        expect(Status.tagged_with([tag1.id, tag3.id]).reorder(:id).pluck(:id).uniq).to contain_exactly(status1.id, status3.id, status5.id)
        expect(Status.tagged_with([tag2.id, tag3.id]).reorder(:id).pluck(:id).uniq).to contain_exactly(status2.id, status3.id, status5.id)
      end
    end
  end


@@ 292,15 292,15 @@ RSpec.describe Status, type: :model do

    context 'when given one tag' do
      it 'returns the expected statuses' do
        expect(Status.tagged_with_all([tag1.id]).reorder(:id).pluck(:id).uniq).to match_array([status1.id, status5.id])
        expect(Status.tagged_with_all([tag2.id]).reorder(:id).pluck(:id).uniq).to match_array([status2.id, status5.id])
        expect(Status.tagged_with_all([tag3.id]).reorder(:id).pluck(:id).uniq).to match_array([status3.id])
        expect(Status.tagged_with_all([tag1.id]).reorder(:id).pluck(:id).uniq).to contain_exactly(status1.id, status5.id)
        expect(Status.tagged_with_all([tag2.id]).reorder(:id).pluck(:id).uniq).to contain_exactly(status2.id, status5.id)
        expect(Status.tagged_with_all([tag3.id]).reorder(:id).pluck(:id).uniq).to contain_exactly(status3.id)
      end
    end

    context 'when given multiple tags' do
      it 'returns the expected statuses' do
        expect(Status.tagged_with_all([tag1.id, tag2.id]).reorder(:id).pluck(:id).uniq).to match_array([status5.id])
        expect(Status.tagged_with_all([tag1.id, tag2.id]).reorder(:id).pluck(:id).uniq).to contain_exactly(status5.id)
        expect(Status.tagged_with_all([tag1.id, tag3.id]).reorder(:id).pluck(:id).uniq).to eq []
        expect(Status.tagged_with_all([tag2.id, tag3.id]).reorder(:id).pluck(:id).uniq).to eq []
      end


@@ 319,17 319,17 @@ RSpec.describe Status, type: :model do

    context 'when given one tag' do
      it 'returns the expected statuses' do
        expect(Status.tagged_with_none([tag1.id]).reorder(:id).pluck(:id).uniq).to match_array([status2.id, status3.id, status4.id])
        expect(Status.tagged_with_none([tag2.id]).reorder(:id).pluck(:id).uniq).to match_array([status1.id, status3.id, status4.id])
        expect(Status.tagged_with_none([tag3.id]).reorder(:id).pluck(:id).uniq).to match_array([status1.id, status2.id, status4.id])
        expect(Status.tagged_with_none([tag1.id]).reorder(:id).pluck(:id).uniq).to contain_exactly(status2.id, status3.id, status4.id)
        expect(Status.tagged_with_none([tag2.id]).reorder(:id).pluck(:id).uniq).to contain_exactly(status1.id, status3.id, status4.id)
        expect(Status.tagged_with_none([tag3.id]).reorder(:id).pluck(:id).uniq).to contain_exactly(status1.id, status2.id, status4.id)
      end
    end

    context 'when given multiple tags' do
      it 'returns the expected statuses' do
        expect(Status.tagged_with_none([tag1.id, tag2.id]).reorder(:id).pluck(:id).uniq).to match_array([status3.id, status4.id])
        expect(Status.tagged_with_none([tag1.id, tag3.id]).reorder(:id).pluck(:id).uniq).to match_array([status2.id, status4.id])
        expect(Status.tagged_with_none([tag2.id, tag3.id]).reorder(:id).pluck(:id).uniq).to match_array([status1.id, status4.id])
        expect(Status.tagged_with_none([tag1.id, tag2.id]).reorder(:id).pluck(:id).uniq).to contain_exactly(status3.id, status4.id)
        expect(Status.tagged_with_none([tag1.id, tag3.id]).reorder(:id).pluck(:id).uniq).to contain_exactly(status2.id, status4.id)
        expect(Status.tagged_with_none([tag2.id, tag3.id]).reorder(:id).pluck(:id).uniq).to contain_exactly(status1.id, status4.id)
      end
    end
  end

M spec/models/user_spec.rb => spec/models/user_spec.rb +4 -4
@@ 65,7 65,7 @@ RSpec.describe User, type: :model do
      it 'returns an array of users who are confirmed' do
        user_1 = Fabricate(:user, confirmed_at: nil)
        user_2 = Fabricate(:user, confirmed_at: Time.zone.now)
        expect(User.confirmed).to match_array([user_2])
        expect(User.confirmed).to contain_exactly(user_2)
      end
    end



@@ 74,7 74,7 @@ RSpec.describe User, type: :model do
        specified = Fabricate(:user, current_sign_in_at: 15.days.ago)
        Fabricate(:user, current_sign_in_at: 6.days.ago)

        expect(User.inactive).to match_array([specified])
        expect(User.inactive).to contain_exactly(specified)
      end
    end



@@ 83,7 83,7 @@ RSpec.describe User, type: :model do
        specified = Fabricate(:user, email: 'specified@spec')
        Fabricate(:user, email: 'unspecified@spec')

        expect(User.matches_email('specified')).to match_array([specified])
        expect(User.matches_email('specified')).to contain_exactly(specified)
      end
    end



@@ 96,7 96,7 @@ RSpec.describe User, type: :model do
        Fabricate(:session_activation, user: user2, ip: '2160:8888::24', session_id: '3')
        Fabricate(:session_activation, user: user2, ip: '2160:8888::25', session_id: '4')

        expect(User.matches_ip('2160:2160::/32')).to match_array([user1])
        expect(User.matches_ip('2160:2160::/32')).to contain_exactly(user1)
      end
    end
  end

M spec/presenters/familiar_followers_presenter_spec.rb => spec/presenters/familiar_followers_presenter_spec.rb +1 -1
@@ 24,7 24,7 @@ RSpec.describe FamiliarFollowersPresenter do

      expect(result).to_not be_nil
      expect(result.id).to eq requested_accounts.first.id
      expect(result.accounts).to match_array([familiar_follower])
      expect(result.accounts).to contain_exactly(familiar_follower)
    end

    context 'when requested account hides followers' do

M spec/services/activitypub/fetch_featured_collection_service_spec.rb => spec/services/activitypub/fetch_featured_collection_service_spec.rb +1 -1
@@ 71,7 71,7 @@ RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do
    end

    it 'sets expected posts as pinned posts' do
      expect(actor.pinned_statuses.pluck(:uri)).to match_array ['https://example.com/account/pinned/1', 'https://example.com/account/pinned/2', 'https://example.com/account/pinned/4']
      expect(actor.pinned_statuses.pluck(:uri)).to contain_exactly('https://example.com/account/pinned/1', 'https://example.com/account/pinned/2', 'https://example.com/account/pinned/4')
    end
  end


M spec/services/update_status_service_spec.rb => spec/services/update_status_service_spec.rb +1 -1
@@ 162,7 162,7 @@ RSpec.describe UpdateStatusService, type: :service do
    end

    it 'keeps old mentions as silent mentions' do
      expect(status.mentions.pluck(:account_id)).to match_array([alice.id, bob.id])
      expect(status.mentions.pluck(:account_id)).to contain_exactly(alice.id, bob.id)
    end
  end