mirror of
https://github.com/astuto/astuto.git
synced 2025-12-15 19:27:52 +01:00
115 lines
3.2 KiB
Ruby
115 lines
3.2 KiB
Ruby
require 'rails_helper'
|
|
|
|
feature 'site settings: authentication', type: :system, js: true do
|
|
let(:admin) { FactoryBot.create(:admin) }
|
|
|
|
let(:o_auth) { FactoryBot.create(:o_auth) }
|
|
|
|
let(:o_auths_list_selector) { '.oAuthsList' }
|
|
let(:o_auth_list_item_selector) { '.oAuthListItem' }
|
|
let(:o_auth_form_selector) { '.authenticationFormPage' }
|
|
|
|
before(:each) do
|
|
o_auth
|
|
|
|
admin.confirm
|
|
sign_in admin
|
|
|
|
visit site_settings_authentication_path
|
|
end
|
|
|
|
it 'lets view existing oauths' do
|
|
within o_auths_list_selector do
|
|
expect(page).to have_css(o_auth_list_item_selector, count: OAuth.count)
|
|
|
|
expect(page).to have_content(/#{o_auth.name}/i)
|
|
end
|
|
end
|
|
|
|
it 'lets create new oauths' do
|
|
n_of_o_auths = OAuth.count
|
|
new_o_auth_name = 'My new oauth'
|
|
|
|
within o_auths_list_selector do
|
|
expect(page).to have_css(o_auth_list_item_selector, count: n_of_o_auths)
|
|
|
|
expect(page).not_to have_content(/#{new_o_auth_name}/i)
|
|
end
|
|
|
|
click_button 'New'
|
|
|
|
within o_auth_form_selector do
|
|
fill_in 'Name', with: new_o_auth_name
|
|
fill_in 'Logo', with: o_auth.logo
|
|
fill_in 'Client ID', with: '1234567890'
|
|
fill_in 'Client secret', with: '1234567890'
|
|
fill_in 'Authorize URL', with: 'https://example.com/authorize'
|
|
fill_in 'Token URL', with: 'https://example.com/token'
|
|
fill_in 'Scope', with: 'email'
|
|
fill_in 'Profile URL', with: 'https://example.com/profile'
|
|
fill_in 'JSON path to user email', with: 'email'
|
|
fill_in 'JSON path to user name', with: 'name'
|
|
|
|
click_button 'Create'
|
|
end
|
|
|
|
within '.siteSettingsInfo' do
|
|
expect(page).to have_content('All changes saved')
|
|
end
|
|
|
|
within o_auths_list_selector do
|
|
expect(page).to have_css(o_auth_list_item_selector, count: n_of_o_auths + 1)
|
|
|
|
expect(page).to have_content(/#{new_o_auth_name}/i)
|
|
end
|
|
|
|
expect(OAuth.count).to eq(n_of_o_auths + 1)
|
|
end
|
|
|
|
it 'lets edit existing oauths' do
|
|
o_auth_to_edit = OAuth.last
|
|
new_o_auth_name = 'My new oauth'
|
|
|
|
expect(page).not_to have_content(/#{new_o_auth_name}/i)
|
|
expect(o_auth_to_edit.name).not_to eq(new_o_auth_name)
|
|
|
|
within o_auths_list_selector do
|
|
within find(o_auth_list_item_selector, text: /#{o_auth_to_edit.name}/i) do
|
|
find('.editAction').click
|
|
end
|
|
end
|
|
|
|
within o_auth_form_selector do
|
|
fill_in 'Name', with: new_o_auth_name
|
|
|
|
click_button 'Save'
|
|
end
|
|
|
|
within '.siteSettingsInfo' do
|
|
expect(page).to have_content('All changes saved')
|
|
end
|
|
|
|
expect(page).to have_content(/#{new_o_auth_name}/i)
|
|
expect(o_auth_to_edit.reload.name).to eq(new_o_auth_name)
|
|
end
|
|
|
|
it 'lets delete existing oauths' do
|
|
n_of_oauths = OAuth.count
|
|
o_auth_to_delete = OAuth.last
|
|
|
|
within o_auths_list_selector do
|
|
within find(o_auth_list_item_selector, text: /#{o_auth_to_delete.name}/i) do
|
|
find('.deleteAction').click
|
|
page.driver.browser.switch_to.alert.accept
|
|
end
|
|
end
|
|
|
|
within '.siteSettingsInfo' do
|
|
expect(page).to have_content('All changes saved')
|
|
end
|
|
|
|
expect(page).not_to have_content(/#{o_auth_to_delete.name}/i)
|
|
expect(OAuth.find_by(id: o_auth_to_delete.id)).to be_nil
|
|
expect(OAuth.count).to eq(n_of_oauths - 1)
|
|
end
|
|
end |