From b021cfc91e1d8addf335a13aa64a057381df7ebb Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 6 Mar 2025 03:21:05 -0500 Subject: [PATCH] Convert `settings/sessions` spec controller->system (#34072) --- .../settings/sessions_controller_spec.rb | 33 ------------------- spec/requests/settings/sessions_spec.rb | 20 +++++++++++ spec/system/settings/sessions_spec.rb | 25 ++++++++++++++ 3 files changed, 45 insertions(+), 33 deletions(-) delete mode 100644 spec/controllers/settings/sessions_controller_spec.rb create mode 100644 spec/requests/settings/sessions_spec.rb create mode 100644 spec/system/settings/sessions_spec.rb diff --git a/spec/controllers/settings/sessions_controller_spec.rb b/spec/controllers/settings/sessions_controller_spec.rb deleted file mode 100644 index c098af7485..0000000000 --- a/spec/controllers/settings/sessions_controller_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe Settings::SessionsController do - render_views - - let(:user) { Fabricate(:user) } - let(:session_activation) { Fabricate(:session_activation, user: user) } - - before { sign_in user, scope: :user } - - describe 'DELETE #destroy' do - subject { delete :destroy, params: { id: id } } - - context 'when session activation exists' do - let(:id) { session_activation.id } - - it 'destroys session activation' do - expect(subject).to redirect_to edit_user_registration_path - expect(SessionActivation.find_by(id: id)).to be_nil - end - end - - context 'when session activation does not exist' do - let(:id) { session_activation.id + 1000 } - - it 'destroys session activation' do - expect(subject).to have_http_status 404 - end - end - end -end diff --git a/spec/requests/settings/sessions_spec.rb b/spec/requests/settings/sessions_spec.rb new file mode 100644 index 0000000000..6a23eac4b4 --- /dev/null +++ b/spec/requests/settings/sessions_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe 'Settings Sessions' do + let(:user) { Fabricate(:user) } + + before { sign_in(user) } + + describe 'DELETE /settings/sessions/:id' do + context 'when session activation does not exist' do + it 'returns not found' do + delete settings_session_path(123_456_789) + + expect(response) + .to have_http_status(404) + end + end + end +end diff --git a/spec/system/settings/sessions_spec.rb b/spec/system/settings/sessions_spec.rb new file mode 100644 index 0000000000..ffc7a64185 --- /dev/null +++ b/spec/system/settings/sessions_spec.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe 'Settings Sessions' do + let(:user) { Fabricate(:user) } + let!(:session_activation) { Fabricate(:session_activation, user: user) } + + before { sign_in(user) } + + describe 'deleting a session' do + it 'deletes listed session activation from the auth page' do + visit edit_user_registration_path + expect(page) + .to have_title(I18n.t('settings.account_settings')) + + expect { click_on(I18n.t('sessions.revoke')) } + .to change(SessionActivation, :count).by(-1) + expect { session_activation.reload } + .to raise_error(ActiveRecord::RecordNotFound) + expect(page) + .to have_content(I18n.t('sessions.revoke_success')) + end + end +end