diff --git a/app/views/admin/administrators/index.html.erb b/app/views/admin/administrators/index.html.erb
index c32c0afa2..c607608d6 100644
--- a/app/views/admin/administrators/index.html.erb
+++ b/app/views/admin/administrators/index.html.erb
@@ -14,7 +14,7 @@
<%= t("admin.shared.actions") %> |
<% @administrators.each do |administrator| %>
-
+
|
<%= administrator.id %>
|
diff --git a/spec/features/admin/administrators_spec.rb b/spec/features/admin/administrators_spec.rb
index 3b7ee4b0c..2e793e545 100644
--- a/spec/features/admin/administrators_spec.rb
+++ b/spec/features/admin/administrators_spec.rb
@@ -1,42 +1,48 @@
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
- @admin = create(:administrator)
- @user = create(:user, username: 'Jose Luis Balbin')
- @administrator = create(:administrator)
- login_as(@admin.user)
+ login_as(admin.user)
visit admin_administrators_path
end
scenario 'Index' do
- expect(page).to have_content @administrator.id
- expect(page).to have_content @administrator.name
- expect(page).to have_content @administrator.email
- expect(page).not_to have_content @user.name
+ 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
+ fill_in 'name_or_email', with: user.email
click_button 'Search'
- expect(page).to have_content @user.name
+ expect(page).to have_content user.name
click_link 'Add'
within("#administrators") do
- expect(page).to have_content @user.name
+ expect(page).to have_content user.name
end
end
scenario 'Delete Administrator' do
- find(:xpath, "//tr[contains(.,'#{@administrator.name}')]/td/a", text: 'Delete').click
+ within "#administrator_#{user_administrator.id}" do
+ click_on "Delete"
+ end
within("#administrators") do
- expect(page).not_to have_content @administrator.name
+ expect(page).not_to have_content user_administrator.name
end
end
scenario 'Delete Administrator when its the current user' do
- find(:xpath, "//tr[contains(.,'#{@admin.name}')]/td/a", text: 'Delete').click
+
+ within "#administrator_#{admin.id}" do
+ click_on "Delete"
+ end
within("#error") do
expect(page).to have_content I18n.t("admin.administrators.administrator.restricted_removal")
@@ -45,49 +51,52 @@ feature 'Admin administrators' do
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
- user = create(:user, username: 'Bernard Sumner', email: 'bernard@sumner.com')
- user2 = create(:user, username: 'Tony Soprano', email: 'tony@soprano.com')
- @administrator1 = create(:administrator, user: user)
- @administrator2 = create(:administrator, user: user2)
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)
+ 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)
+ 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)
+ 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)
+ 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)
+ expect(page).to have_content(administrator1.email)
+ expect(page).to have_content(administrator2.email)
- fill_in 'name_or_email', with: @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)
+ expect(page).to have_content(administrator2.email)
+ expect(page).not_to have_content(administrator1.email)
end
end