diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 7620025cfd5a5d6b28d97112c988c76169e4e5a8..03de56a2a5e11dd5e03e51646652f29a308b0bf6 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -825,27 +825,6 @@ RSpec/EmptyExampleGroup: - 'spec/models/web/setting_spec.rb' - 'spec/services/unmute_service_spec.rb' -# Offense count: 25 -# This cop supports safe autocorrection (--autocorrect). -RSpec/EmptyLineAfterFinalLet: - Exclude: - - 'spec/config/initializers/rack_attack_spec.rb' - - 'spec/controllers/admin/reports_controller_spec.rb' - - 'spec/controllers/admin/resets_controller_spec.rb' - - 'spec/controllers/api/web/embeds_controller_spec.rb' - - 'spec/controllers/instance_actors_controller_spec.rb' - - 'spec/controllers/intents_controller_spec.rb' - - 'spec/controllers/settings/applications_controller_spec.rb' - - 'spec/controllers/settings/sessions_controller_spec.rb' - - 'spec/controllers/shares_controller_spec.rb' - - 'spec/lib/status_filter_spec.rb' - - 'spec/models/account_spec.rb' - - 'spec/models/account_statuses_cleanup_policy_spec.rb' - - 'spec/services/fetch_resource_service_spec.rb' - - 'spec/services/import_service_spec.rb' - - 'spec/services/precompute_feed_service_spec.rb' - - 'spec/validators/poll_validator_spec.rb' - # Offense count: 1 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: AllowConsecutiveOneLiners. diff --git a/spec/config/initializers/rack_attack_spec.rb b/spec/config/initializers/rack_attack_spec.rb index 03695f5fd2eb17a0e9525dfe239f5f89f8c248d8..6d603caa94de817f5b23d0b01f4edaad8f43bec3 100644 --- a/spec/config/initializers/rack_attack_spec.rb +++ b/spec/config/initializers/rack_attack_spec.rb @@ -36,11 +36,13 @@ describe Rack::Attack do context 'for exact path' do let(:path) { '/auth' } + it_behaves_like 'throttled endpoint' end context 'for path with format' do let(:path) { '/auth.html' } + it_behaves_like 'throttled endpoint' end end @@ -51,6 +53,7 @@ describe Rack::Attack do context 'for exact path' do let(:path) { '/api/v1/accounts' } + it_behaves_like 'throttled endpoint' end @@ -71,11 +74,13 @@ describe Rack::Attack do context 'for exact path' do let(:path) { '/auth/sign_in' } + it_behaves_like 'throttled endpoint' end context 'for path with format' do let(:path) { '/auth/sign_in.html' } + it_behaves_like 'throttled endpoint' end end diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb index 4cd1524bf73f0b8bda619071a48ef39a255fcfe2..4dcc277d9998e6e97a6c90d2a2d4037cd1809578 100644 --- a/spec/controllers/admin/reports_controller_spec.rb +++ b/spec/controllers/admin/reports_controller_spec.rb @@ -4,6 +4,7 @@ describe Admin::ReportsController do render_views let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + before do sign_in user, scope: :user end diff --git a/spec/controllers/admin/resets_controller_spec.rb b/spec/controllers/admin/resets_controller_spec.rb index aeb172318bfcd062cb31788f54d7fcc00c8f9bc3..64fe027fdab63cde7b0f838b9bea6b74e19fb6c4 100644 --- a/spec/controllers/admin/resets_controller_spec.rb +++ b/spec/controllers/admin/resets_controller_spec.rb @@ -4,6 +4,7 @@ describe Admin::ResetsController do render_views let(:account) { Fabricate(:account) } + before do sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user end diff --git a/spec/controllers/api/web/embeds_controller_spec.rb b/spec/controllers/api/web/embeds_controller_spec.rb index a8fc1718f60686efc658c77dac6e7968be1a5d0f..345c317ba6aeeaa6300144c602ca133cee7dd8cd 100644 --- a/spec/controllers/api/web/embeds_controller_spec.rb +++ b/spec/controllers/api/web/embeds_controller_spec.rb @@ -6,6 +6,7 @@ describe Api::Web::EmbedsController do render_views let(:user) { Fabricate(:user) } + before { sign_in user } describe 'POST #create' do diff --git a/spec/controllers/instance_actors_controller_spec.rb b/spec/controllers/instance_actors_controller_spec.rb index 833539a76d8c5cf7f15820e542ea1cdcead7f5cd..d6b4c793b8d8dbe2170cfc2f270d9b3523b5e903 100644 --- a/spec/controllers/instance_actors_controller_spec.rb +++ b/spec/controllers/instance_actors_controller_spec.rb @@ -43,11 +43,13 @@ RSpec.describe InstanceActorsController, type: :controller do context 'without authorized fetch mode' do let(:authorized_fetch_mode) { false } + it_behaves_like 'shared behavior' end context 'with authorized fetch mode' do let(:authorized_fetch_mode) { true } + it_behaves_like 'shared behavior' end end diff --git a/spec/controllers/intents_controller_spec.rb b/spec/controllers/intents_controller_spec.rb index ddfd5ea365639e082ca614c531fc0aae4e324970..394f7d512be0c9ab944f22fadfe4a5d77270bf98 100644 --- a/spec/controllers/intents_controller_spec.rb +++ b/spec/controllers/intents_controller_spec.rb @@ -4,6 +4,7 @@ RSpec.describe IntentsController, type: :controller do render_views let(:user) { Fabricate(:user) } + before { sign_in user, scope: :user } describe 'GET #show' do diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb index a882a6fb8c38f6dd19d46544046521435bf1fbed..35ad4b2e7a336d098dbc51e121b9aad9c1d6f752 100644 --- a/spec/controllers/settings/applications_controller_spec.rb +++ b/spec/controllers/settings/applications_controller_spec.rb @@ -175,6 +175,7 @@ describe Settings::ApplicationsController do describe 'regenerate' do let(:token) { user.token_for_app(app) } + before do expect(token).to_not be_nil post :regenerate, params: { id: app.id } diff --git a/spec/controllers/settings/sessions_controller_spec.rb b/spec/controllers/settings/sessions_controller_spec.rb index 52b204a6a3319afa1bcad23153951b9c0fd5e265..0e312c5a689c3a472c4d60335043612340fafa73 100644 --- a/spec/controllers/settings/sessions_controller_spec.rb +++ b/spec/controllers/settings/sessions_controller_spec.rb @@ -5,6 +5,7 @@ describe Settings::SessionsController do let(:user) { Fabricate(:user) } let(:session_activation) { Fabricate(:session_activation, user: user) } + before { sign_in user, scope: :user } describe 'DELETE #destroy' do diff --git a/spec/controllers/shares_controller_spec.rb b/spec/controllers/shares_controller_spec.rb index d6de3016ae47c3a5234b70a9a2447c285b896ba5..e365b356e18d7f38aa80920a682694e59bd60316 100644 --- a/spec/controllers/shares_controller_spec.rb +++ b/spec/controllers/shares_controller_spec.rb @@ -4,6 +4,7 @@ describe SharesController do render_views let(:user) { Fabricate(:user) } + before { sign_in user } describe 'GTE #show' do diff --git a/spec/lib/status_filter_spec.rb b/spec/lib/status_filter_spec.rb index a851014d9c025ee76b946f8fb46a3aa6a84a2aa3..287fe00de6308c11f40d9fa0f499f5000c2b897b 100644 --- a/spec/lib/status_filter_spec.rb +++ b/spec/lib/status_filter_spec.rb @@ -32,6 +32,7 @@ describe StatusFilter do context 'with real account' do let(:account) { Fabricate(:account) } + subject { described_class.new(status, account) } context 'when there are no connections' do diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index 6cd769dc84bf1f43bb4ddcfb7f0dfae70e6b260f..694432a1e5837ed52a0fa828587dd91fe4ce100b 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -3,6 +3,7 @@ require 'rails_helper' RSpec.describe Account, type: :model do context do let(:bob) { Fabricate(:account, username: 'bob') } + subject { Fabricate(:account) } describe '#suspend!' do diff --git a/spec/models/account_statuses_cleanup_policy_spec.rb b/spec/models/account_statuses_cleanup_policy_spec.rb index f116845162082d3f3cf4819f8bad403e98a9e63b..d3c011b3a2dd759181b2f090e7520affdd40c4e1 100644 --- a/spec/models/account_statuses_cleanup_policy_spec.rb +++ b/spec/models/account_statuses_cleanup_policy_spec.rb @@ -134,6 +134,7 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do describe '#invalidate_last_inspected' do let(:account_statuses_cleanup_policy) { Fabricate(:account_statuses_cleanup_policy, account: account) } let(:status) { Fabricate(:status, id: 10, account: account) } + subject { account_statuses_cleanup_policy.invalidate_last_inspected(status, action) } before do diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb index 6f24e64187fd21134b4e6de247f2acd8887f3905..c39f52632895c8006c5325606f31e95db954e601 100644 --- a/spec/services/fetch_resource_service_spec.rb +++ b/spec/services/fetch_resource_service_spec.rb @@ -8,6 +8,7 @@ RSpec.describe FetchResourceService, type: :service do context 'with blank url' do let(:url) { '' } + it { is_expected.to be_nil } end diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb index 217d0ee244576701aa7c26843a5113e970bef2ef..399a43036a0f4c6d83279a00bcf6ea30aea0be5e 100644 --- a/spec/services/import_service_spec.rb +++ b/spec/services/import_service_spec.rb @@ -18,6 +18,7 @@ RSpec.describe ImportService, type: :service do describe 'when no accounts are muted' do let(:import) { Import.create(account: account, type: 'muting', data: csv) } + it 'mutes the listed accounts, including notifications' do subject.call(import) expect(account.muting.count).to eq 2 @@ -55,6 +56,7 @@ RSpec.describe ImportService, type: :service do describe 'when no accounts are muted' do let(:import) { Import.create(account: account, type: 'muting', data: csv) } + it 'mutes the listed accounts, respecting notifications' do subject.call(import) expect(account.muting.count).to eq 2 @@ -95,6 +97,7 @@ RSpec.describe ImportService, type: :service do describe 'when no accounts are followed' do let(:import) { Import.create(account: account, type: 'following', data: csv) } + it 'follows the listed accounts, including boosts' do subject.call(import) @@ -136,6 +139,7 @@ RSpec.describe ImportService, type: :service do describe 'when no accounts are followed' do let(:import) { Import.create(account: account, type: 'following', data: csv) } + it 'follows the listed accounts, respecting boosts' do subject.call(import) expect(account.following.count).to eq 1 @@ -224,6 +228,7 @@ RSpec.describe ImportService, type: :service do describe 'when no bookmarks are set' do let(:import) { Import.create(account: account, type: 'bookmarks', data: csv) } + it 'adds the toots the user has access to to bookmarks' do local_status = Fabricate(:status, account: local_account, uri: 'https://local.com/users/foo/statuses/42', id: 42, local: true) subject.call(import) diff --git a/spec/services/precompute_feed_service_spec.rb b/spec/services/precompute_feed_service_spec.rb index 86b93b5d2faeefa53f6ac1227963f49e96c31483..b28824f9a2901497ddb5c17ff6606ae7b7f3a5b9 100644 --- a/spec/services/precompute_feed_service_spec.rb +++ b/spec/services/precompute_feed_service_spec.rb @@ -7,6 +7,7 @@ RSpec.describe PrecomputeFeedService, type: :service do describe 'call' do let(:account) { Fabricate(:account) } + it 'fills a user timeline with statuses' do account = Fabricate(:account) status = Fabricate(:status, account: account) diff --git a/spec/validators/poll_validator_spec.rb b/spec/validators/poll_validator_spec.rb index 941b83401f5d3e0f45ef06a48818d4aef5fc3a28..a76c63ccc24d4986eb1e220d1f9eb3d1af551928 100644 --- a/spec/validators/poll_validator_spec.rb +++ b/spec/validators/poll_validator_spec.rb @@ -20,6 +20,7 @@ RSpec.describe PollValidator, type: :validator do context 'expires just 5 min ago' do let(:expires_at) { 5.minutes.from_now } + it 'not calls errors add' do expect(errors).not_to have_received(:add) end