Fix log out from user menu not working on Safari (#31402)
This commit is contained in:
parent
2b1670da48
commit
c3e1d86d58
5 changed files with 102 additions and 34 deletions
30
spec/requests/log_out_spec.rb
Normal file
30
spec/requests/log_out_spec.rb
Normal file
|
@ -0,0 +1,30 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe 'Log Out' do
|
||||
include RoutingHelper
|
||||
|
||||
describe 'DELETE /auth/sign_out' do
|
||||
let(:user) { Fabricate(:user) }
|
||||
|
||||
before do
|
||||
sign_in user
|
||||
end
|
||||
|
||||
it 'Logs out the user and redirect' do
|
||||
delete '/auth/sign_out'
|
||||
|
||||
expect(response).to redirect_to('/auth/sign_in')
|
||||
end
|
||||
|
||||
it 'Logs out the user and return a page to redirect to with a JSON request' do
|
||||
delete '/auth/sign_out', headers: { 'HTTP_ACCEPT' => 'application/json' }
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(response.media_type).to eq 'application/json'
|
||||
|
||||
expect(body_as_json[:redirect_to]).to eq '/auth/sign_in'
|
||||
end
|
||||
end
|
||||
end
|
43
spec/system/log_out_spec.rb
Normal file
43
spec/system/log_out_spec.rb
Normal file
|
@ -0,0 +1,43 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe 'Log out' do
|
||||
include ProfileStories
|
||||
|
||||
before do
|
||||
as_a_logged_in_user
|
||||
end
|
||||
|
||||
describe 'Logging out from the preferences' do
|
||||
it 'logs the user out' do
|
||||
visit settings_path
|
||||
|
||||
within '.sidebar' do
|
||||
click_on 'Logout'
|
||||
end
|
||||
|
||||
expect(page).to have_title(I18n.t('auth.login'))
|
||||
expect(page).to have_current_path('/auth/sign_in')
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Logging out from the JS app', :js, :streaming do
|
||||
it 'logs the user out' do
|
||||
visit root_path
|
||||
|
||||
within '.navigation-bar' do
|
||||
click_on 'Menu'
|
||||
end
|
||||
|
||||
within '.dropdown-menu' do
|
||||
click_on 'Logout'
|
||||
end
|
||||
|
||||
click_on 'Log out'
|
||||
|
||||
expect(page).to have_title(I18n.t('auth.login'))
|
||||
expect(page).to have_current_path('/auth/sign_in')
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue