Convert settings/login_activities controller spec to system spec

This commit is contained in:
Matt Jankowski 2024-10-08 14:40:20 -04:00
parent 935277b4ea
commit 36064a7df8
2 changed files with 34 additions and 29 deletions

View file

@ -1,29 +0,0 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe Settings::LoginActivitiesController do
render_views
let!(:user) { Fabricate(:user) }
let!(:login_activity) { Fabricate :login_activity, user: user }
before do
sign_in user, scope: :user
end
describe 'GET #index' do
before do
get :index
end
it 'returns http success with private cache control headers', :aggregate_failures do
expect(response).to have_http_status(200)
expect(response.headers['Cache-Control']).to include('private, no-store')
expect(response.body)
.to include(login_activity.user_agent)
.and include(login_activity.authentication_method)
.and include(login_activity.ip.to_s)
end
end
end

View file

@ -0,0 +1,34 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe 'Login activities page' do
let!(:user) { Fabricate :user }
let!(:login_activity) { Fabricate :login_activity, user: user }
context 'when signed in' do
before { sign_in user }
describe 'Viewing the login activities page' do
it 'shows the login activity history' do
visit edit_user_registration_path
click_on I18n.t('sessions.view_authentication_history')
expect(page)
.to have_content(browser_description)
.and have_content(login_activity.authentication_method)
.and have_content(login_activity.ip)
.and have_private_cache_control
end
def browser_description
I18n.t(
'sessions.description',
browser: I18n.t("sessions.browsers.#{login_activity.browser}", default: login_activity.browser),
platform: I18n.t("sessions.platforms.#{login_activity.platform}", default: login_activity.platform)
)
end
end
end
end