From cf18cc2891be6f63fc1f4d96120901be81820fa6 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 3 May 2023 23:48:35 -0400 Subject: [PATCH] Fix RSpec/MultipleSubjects cop (#24738) --- .rubocop_todo.yml | 11 ----------- .../activitypub/collections_controller_spec.rb | 3 +-- .../followers_synchronizations_controller_spec.rb | 3 +-- .../activitypub/outboxes_controller_spec.rb | 3 +-- spec/controllers/api/web/embeds_controller_spec.rb | 4 ++-- spec/controllers/emojis_controller_spec.rb | 4 ++-- spec/controllers/follower_accounts_controller_spec.rb | 4 ++-- .../controllers/following_accounts_controller_spec.rb | 4 ++-- 8 files changed, 11 insertions(+), 25 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 6a7b7ef83d..e5d05c1cb2 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -732,17 +732,6 @@ RSpec/MultipleExpectations: RSpec/MultipleMemoizedHelpers: Max: 21 -# This cop supports safe autocorrection (--autocorrect). -RSpec/MultipleSubjects: - Exclude: - - 'spec/controllers/activitypub/collections_controller_spec.rb' - - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb' - - 'spec/controllers/activitypub/outboxes_controller_spec.rb' - - 'spec/controllers/api/web/embeds_controller_spec.rb' - - 'spec/controllers/emojis_controller_spec.rb' - - 'spec/controllers/follower_accounts_controller_spec.rb' - - 'spec/controllers/following_accounts_controller_spec.rb' - # Configuration parameters: AllowedGroups. RSpec/NestedGroups: Max: 6 diff --git a/spec/controllers/activitypub/collections_controller_spec.rb b/spec/controllers/activitypub/collections_controller_spec.rb index 77901131e7..6b35a1206d 100644 --- a/spec/controllers/activitypub/collections_controller_spec.rb +++ b/spec/controllers/activitypub/collections_controller_spec.rb @@ -35,10 +35,9 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do describe 'GET #show' do context 'when id is "featured"' do context 'without signature' do - subject(:body) { body_as_json } - subject(:response) { get :show, params: { id: 'featured', account_username: account.username } } + let(:body) { body_as_json } let(:remote_account) { nil } it 'returns http success' do diff --git a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb index c99d59edaa..5935049dcf 100644 --- a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb +++ b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb @@ -34,10 +34,9 @@ RSpec.describe ActivityPub::FollowersSynchronizationsController, type: :controll end context 'with signature from example.com' do - subject(:body) { body_as_json } - subject(:response) { get :show, params: { account_username: account.username } } + let(:body) { body_as_json } let(:remote_account) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/instance') } it 'returns http success' do diff --git a/spec/controllers/activitypub/outboxes_controller_spec.rb b/spec/controllers/activitypub/outboxes_controller_spec.rb index 167bbcc21d..189b46a7d2 100644 --- a/spec/controllers/activitypub/outboxes_controller_spec.rb +++ b/spec/controllers/activitypub/outboxes_controller_spec.rb @@ -35,10 +35,9 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do describe 'GET #show' do context 'without signature' do - subject(:body) { body_as_json } - subject(:response) { get :show, params: { account_username: account.username, page: page } } + let(:body) { body_as_json } let(:remote_account) { nil } context 'with page not requested' do diff --git a/spec/controllers/api/web/embeds_controller_spec.rb b/spec/controllers/api/web/embeds_controller_spec.rb index e03f5a3714..b0c48a5aed 100644 --- a/spec/controllers/api/web/embeds_controller_spec.rb +++ b/spec/controllers/api/web/embeds_controller_spec.rb @@ -10,10 +10,10 @@ describe Api::Web::EmbedsController do before { sign_in user } describe 'POST #create' do - subject(:response) { post :create, params: { url: url } } - subject(:body) { JSON.parse(response.body, symbolize_names: true) } + let(:response) { post :create, params: { url: url } } + context 'when successfully finds status' do let(:status) { Fabricate(:status) } let(:url) { "http://#{Rails.configuration.x.web_domain}/@#{status.account.username}/#{status.id}" } diff --git a/spec/controllers/emojis_controller_spec.rb b/spec/controllers/emojis_controller_spec.rb index 710d23d924..249dfd9d51 100644 --- a/spec/controllers/emojis_controller_spec.rb +++ b/spec/controllers/emojis_controller_spec.rb @@ -8,10 +8,10 @@ describe EmojisController do let(:emoji) { Fabricate(:custom_emoji) } describe 'GET #show' do - subject(:response) { get :show, params: { id: emoji.id, format: :json } } - subject(:body) { JSON.parse(response.body, symbolize_names: true) } + let(:response) { get :show, params: { id: emoji.id, format: :json } } + it 'returns the right response' do expect(response).to have_http_status 200 expect(body[:name]).to eq ':coolcat:' diff --git a/spec/controllers/follower_accounts_controller_spec.rb b/spec/controllers/follower_accounts_controller_spec.rb index 0551dfcdec..b5b8ff9cb4 100644 --- a/spec/controllers/follower_accounts_controller_spec.rb +++ b/spec/controllers/follower_accounts_controller_spec.rb @@ -39,10 +39,10 @@ describe FollowerAccountsController do end context 'when format is json' do - subject(:response) { get :index, params: { account_username: alice.username, page: page, format: :json } } - subject(:body) { response.parsed_body } + let(:response) { get :index, params: { account_username: alice.username, page: page, format: :json } } + context 'with page' do let(:page) { 1 } diff --git a/spec/controllers/following_accounts_controller_spec.rb b/spec/controllers/following_accounts_controller_spec.rb index b049df890f..d1efeec251 100644 --- a/spec/controllers/following_accounts_controller_spec.rb +++ b/spec/controllers/following_accounts_controller_spec.rb @@ -39,10 +39,10 @@ describe FollowingAccountsController do end context 'when format is json' do - subject(:response) { get :index, params: { account_username: alice.username, page: page, format: :json } } - subject(:body) { response.parsed_body } + let(:response) { get :index, params: { account_username: alice.username, page: page, format: :json } } + context 'with page' do let(:page) { 1 }