Files
grecia/spec/features/admin/officials_spec.rb
Javi Martín 307cf24846 Use describe on feature tests
The `type: :feature` is automatically detected by RSpec because these
tests are inside the `spec/features` folder. Using `feature` re-adds a
`type: :feature` to these files, which will result in a conflict when we
upgrade to Rails 5.1's system tests.

Because of this change, we also need to change `background` to `before`
or else these tests will fail.
2019-05-28 16:36:54 +02:00

79 lines
2.3 KiB
Ruby

require "rails_helper"
describe "Admin officials" do
before do
@citizen = create(:user, username: "Citizen Kane")
@official = create(:user, official_position: "Mayor", official_level: 5)
@admin = create(:administrator)
login_as(@admin.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