Files
nairobi/spec/features/admin/administrators_spec.rb
decabeza 6d7c5f1b78 Refactors admin administrators spec
This refactoring avoids "Use let instead of an instance variable" rubocop warning
2018-11-22 11:41:59 +01:00

104 lines
3.2 KiB
Ruby

require 'rails_helper'
feature 'Admin administrators' do
let!(:admin) { create(:administrator) }
let!(:user) { create(:user, username: 'Jose Luis Balbin') }
let!(:user_administrator) { create(:administrator) }
background do
login_as(admin.user)
visit admin_administrators_path
end
scenario 'Index' do
expect(page).to have_content user_administrator.id
expect(page).to have_content user_administrator.name
expect(page).to have_content user_administrator.email
expect(page).not_to have_content user.name
end
scenario 'Create Administrator', :js do
fill_in 'name_or_email', with: user.email
click_button 'Search'
expect(page).to have_content user.name
click_link 'Add'
within("#administrators") do
expect(page).to have_content user.name
end
end
scenario 'Delete Administrator' do
within "#administrator_#{user_administrator.id}" do
click_on "Delete"
end
within("#administrators") do
expect(page).not_to have_content user_administrator.name
end
end
scenario 'Delete Administrator when its the current user' do
within "#administrator_#{admin.id}" do
click_on "Delete"
end
within("#error") do
expect(page).to have_content I18n.t("admin.administrators.administrator.restricted_removal")
end
end
context 'Search' do
let!(:administrator1) { create(:administrator, user: create(:user,
username: 'Bernard Sumner',
email: 'bernard@sumner.com')) }
let!(:administrator2) { create(:administrator, user: create(:user,
username: 'Tony Soprano',
email: 'tony@soprano.com')) }
background do
visit admin_administrators_path
end
scenario 'returns no results if search term is empty' do
expect(page).to have_content(administrator1.name)
expect(page).to have_content(administrator2.name)
fill_in 'name_or_email', with: ' '
click_button 'Search'
expect(page).to have_content('Administrators: User search')
expect(page).to have_content('No results found')
expect(page).not_to have_content(administrator1.name)
expect(page).not_to have_content(administrator2.name)
end
scenario 'search by name' do
expect(page).to have_content(administrator1.name)
expect(page).to have_content(administrator2.name)
fill_in 'name_or_email', with: 'Sumn'
click_button 'Search'
expect(page).to have_content('Administrators: User search')
expect(page).to have_content(administrator1.name)
expect(page).not_to have_content(administrator2.name)
end
scenario 'search by email' do
expect(page).to have_content(administrator1.email)
expect(page).to have_content(administrator2.email)
fill_in 'name_or_email', with: administrator2.email
click_button 'Search'
expect(page).to have_content('Administrators: User search')
expect(page).to have_content(administrator2.email)
expect(page).not_to have_content(administrator1.email)
end
end
end