From 23165d3f7805727fcccd72dd0c8706338f541f9c Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 10 Oct 2024 12:29:04 -0400 Subject: [PATCH] Convert `statuses_cleanup` controller specs to system specs --- .../statuses_cleanup_controller_spec.rb | 43 ------------------- spec/system/statuses_cleanup_spec.rb | 32 ++++++++++++++ 2 files changed, 32 insertions(+), 43 deletions(-) delete mode 100644 spec/controllers/statuses_cleanup_controller_spec.rb create mode 100644 spec/system/statuses_cleanup_spec.rb diff --git a/spec/controllers/statuses_cleanup_controller_spec.rb b/spec/controllers/statuses_cleanup_controller_spec.rb deleted file mode 100644 index 8a72621993..0000000000 --- a/spec/controllers/statuses_cleanup_controller_spec.rb +++ /dev/null @@ -1,43 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe StatusesCleanupController do - render_views - - let!(:user) { Fabricate(:user) } - - before do - sign_in user, scope: :user - end - - describe 'GET #show' do - before do - get :show - end - - it 'returns http success' do - expect(response).to have_http_status(200) - end - - it 'returns private cache control headers' do - expect(response.headers['Cache-Control']).to include('private, no-store') - end - end - - describe 'PUT #update' do - before do - put :update, params: { account_statuses_cleanup_policy: { enabled: true, min_status_age: 2.weeks.seconds, keep_direct: false, keep_polls: true } } - end - - it 'updates the account status cleanup policy' do - expect(user.account.statuses_cleanup_policy.enabled).to be true - expect(user.account.statuses_cleanup_policy.keep_direct).to be false - expect(user.account.statuses_cleanup_policy.keep_polls).to be true - end - - it 'redirects' do - expect(response).to redirect_to(statuses_cleanup_path) - end - end -end diff --git a/spec/system/statuses_cleanup_spec.rb b/spec/system/statuses_cleanup_spec.rb new file mode 100644 index 0000000000..349819f860 --- /dev/null +++ b/spec/system/statuses_cleanup_spec.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe 'Automated post deletion settings' do + let(:user) { Fabricate :user } + let(:account) { user.account } + + describe 'Updating settings' do + before { sign_in user } + + it 'visits the page and updates the policy' do + visit statuses_cleanup_path + + expect(page) + .to have_private_cache_control + + check I18n.t('statuses_cleanup.enabled') + click_on submit_button + expect(account.reload.statuses_cleanup_policy) + .to be_enabled + + uncheck I18n.t('statuses_cleanup.keep_pinned') + click_on submit_button + expect(account.reload.statuses_cleanup_policy) + .to_not be_keep_pinned + + expect(page) + .to have_content(I18n.t('settings.statuses_cleanup')) + end + end +end