When we see a list of, let's say, banners, and each one has a link to edit them, the word "banner" in the text "edit banner" is redundant and adds noise; even for users with cognitive disabilities, it's obvious that the "edit" link refers to the banner.
74 lines
2.2 KiB
Ruby
74 lines
2.2 KiB
Ruby
require "rails_helper"
|
|
|
|
describe "Admin officials", :admin do
|
|
let!(:citizen) { create(:user, username: "Citizen Kane") }
|
|
let!(:official) { create(:user, official_position: "Mayor", official_level: 5) }
|
|
|
|
scenario "Index" do
|
|
visit admin_officials_path
|
|
|
|
expect(page).to have_content official.name
|
|
expect(page).not_to have_content citizen.name
|
|
expect(page).to have_content official.official_position
|
|
expect(page).to have_content official.official_level
|
|
end
|
|
|
|
scenario "Edit an official" do
|
|
visit admin_officials_path
|
|
click_link "Edit"
|
|
|
|
expect(page).to have_current_path(edit_admin_official_path(official))
|
|
|
|
expect(page).not_to have_content citizen.name
|
|
expect(page).to have_content official.name
|
|
expect(page).to have_content official.email
|
|
|
|
fill_in "user_official_position", with: "School Teacher"
|
|
select "3", from: "user_official_level", exact: false
|
|
click_button "Update User"
|
|
|
|
expect(page).to have_content "Details of official saved"
|
|
|
|
visit admin_officials_path
|
|
|
|
expect(page).to have_content official.name
|
|
expect(page).to have_content "School Teacher"
|
|
expect(page).to have_content "3"
|
|
end
|
|
|
|
scenario "Create an official" do
|
|
visit admin_officials_path
|
|
fill_in "search", with: citizen.email
|
|
click_button "Search"
|
|
|
|
expect(page).to have_current_path(search_admin_officials_path, ignore_query: true)
|
|
expect(page).not_to have_content official.name
|
|
|
|
click_link citizen.name
|
|
|
|
fill_in "user_official_position", with: "Hospital manager"
|
|
select "4", from: "user_official_level", exact: false
|
|
click_button "Update User"
|
|
|
|
expect(page).to have_content "Details of official saved"
|
|
|
|
visit admin_officials_path
|
|
|
|
expect(page).to have_content official.name
|
|
expect(page).to have_content citizen.name
|
|
expect(page).to have_content "Hospital manager"
|
|
expect(page).to have_content "4"
|
|
end
|
|
|
|
scenario "Destroy" do
|
|
visit edit_admin_official_path(official)
|
|
|
|
click_link 'Remove "Official" status'
|
|
|
|
expect(page).to have_content "Details saved: the user is no longer an official"
|
|
expect(page).to have_current_path(admin_officials_path, ignore_query: true)
|
|
expect(page).not_to have_content citizen.name
|
|
expect(page).not_to have_content official.name
|
|
end
|
|
end
|