Files
nairobi/spec/system/admin/officials_spec.rb
Javi Martín 9427f01442 Use system specs instead of feature specs
We get rid of database cleaner, and JavaScript tests are faster because
between tests we now rollback transactions instead of truncating the
database.
2020-04-24 15:43:54 +02:00

78 lines
2.3 KiB
Ruby

require "rails_helper"
describe "Admin officials" do
let!(:citizen) { create(:user, username: "Citizen Kane") }
let!(:official) { create(:user, official_position: "Mayor", official_level: 5) }
before do
login_as(create(:administrator).user)
end
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 official.name
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 "name_or_email", 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