We've got quite a messy hack to sign in managers: they need to visit a specific URL (management root path). That means tests signing in managers start the browser to sign them in, which might cause issues if we setup the database after that.
162 lines
5.3 KiB
Ruby
162 lines
5.3 KiB
Ruby
require "rails_helper"
|
|
|
|
describe "Managed User" do
|
|
context "Currently managed user" do
|
|
scenario "No managed user" do
|
|
login_as_manager
|
|
visit management_document_verifications_path
|
|
expect(page).not_to have_css ".account-info"
|
|
end
|
|
|
|
scenario "User is already level three verified" do
|
|
user = create(:user, :level_three)
|
|
|
|
login_as_manager
|
|
visit management_document_verifications_path
|
|
fill_in "document_verification_document_number", with: user.document_number
|
|
click_button "Check document"
|
|
|
|
expect(page).to have_content "already verified"
|
|
|
|
within(".account-info") do
|
|
expect(page).to have_content "Identified as"
|
|
expect(page).to have_content user.username.to_s
|
|
expect(page).to have_content user.email.to_s
|
|
expect(page).to have_content user.document_number.to_s
|
|
end
|
|
end
|
|
|
|
scenario "User becomes verified as level three" do
|
|
user = create(:user, :level_two)
|
|
|
|
login_as_manager
|
|
visit management_document_verifications_path
|
|
fill_in "document_verification_document_number", with: user.document_number
|
|
click_button "Check document"
|
|
|
|
expect(page).to have_content "Vote proposals"
|
|
|
|
click_button "Verify"
|
|
|
|
expect(page).to have_content "already verified"
|
|
|
|
within(".account-info") do
|
|
expect(page).to have_content "Identified as"
|
|
expect(page).to have_content user.username.to_s
|
|
expect(page).to have_content user.email.to_s
|
|
expect(page).to have_content user.document_number.to_s
|
|
end
|
|
end
|
|
|
|
scenario "User becomes verified as level two (pending email confirmation for level three)" do
|
|
user = create(:user)
|
|
|
|
login_as_manager
|
|
visit management_document_verifications_path
|
|
fill_in "document_verification_document_number", with: "12345678Z"
|
|
click_button "Check document"
|
|
|
|
within(".account-info") do
|
|
expect(page).not_to have_content "Identified as"
|
|
expect(page).not_to have_content "Username"
|
|
expect(page).not_to have_content "Email"
|
|
expect(page).to have_content "Document type"
|
|
expect(page).to have_content "Document number"
|
|
expect(page).to have_content "12345678Z"
|
|
end
|
|
|
|
expect(page).to have_content "Please introduce the email used on the account"
|
|
|
|
fill_in "email_verification_email", with: user.email
|
|
click_button "Send verification email"
|
|
|
|
expect(page).to have_content("In order to completely verify this user, it is necessary that the user clicks on a link")
|
|
|
|
within(".account-info") do
|
|
expect(page).to have_content "Identified as"
|
|
expect(page).to have_content user.username.to_s
|
|
expect(page).to have_content user.email.to_s
|
|
expect(page).to have_content user.document_number.to_s
|
|
end
|
|
end
|
|
|
|
scenario "User is created with email as level three from scratch" do
|
|
login_as_manager
|
|
|
|
visit management_document_verifications_path
|
|
fill_in "document_verification_document_number", with: "12345678Z"
|
|
click_button "Check document"
|
|
|
|
expect(page).to have_content "Please introduce the email used on the account"
|
|
|
|
click_link "Create a new account"
|
|
|
|
fill_in "user_username", with: "pepe"
|
|
fill_in "user_email", with: "pepe@gmail.com"
|
|
|
|
click_button "Create user"
|
|
|
|
expect(page).to have_content "We have sent an email"
|
|
expect(page).not_to have_content "Autogenerated password is"
|
|
|
|
user = User.last
|
|
within(".account-info") do
|
|
expect(page).to have_content "Identified as"
|
|
expect(page).to have_content user.username.to_s
|
|
expect(page).to have_content user.email.to_s
|
|
expect(page).to have_content user.document_number.to_s
|
|
end
|
|
end
|
|
|
|
scenario "User is created without email as level three from scratch" do
|
|
login_as_manager
|
|
|
|
visit management_document_verifications_path
|
|
fill_in "document_verification_document_number", with: "12345678Z"
|
|
click_button "Check document"
|
|
|
|
expect(page).to have_content "Please introduce the email used on the account"
|
|
|
|
click_link "Create a new account"
|
|
|
|
fill_in "user_username", with: "peppa"
|
|
fill_in "user_email", with: ""
|
|
|
|
click_button "Create user"
|
|
|
|
expect(page).not_to have_content "We have sent an email"
|
|
expect(page).to have_content "Autogenerated password is"
|
|
|
|
user = User.last
|
|
within(".account-info") do
|
|
expect(page).to have_content "Identified as"
|
|
expect(page).to have_content user.username.to_s
|
|
expect(page).to have_content user.document_number.to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
scenario "Close the currently managed user session" do
|
|
user = create(:user, :level_three)
|
|
|
|
login_as_manager
|
|
visit management_document_verifications_path
|
|
fill_in "document_verification_document_number", with: user.document_number
|
|
click_button "Check document"
|
|
|
|
expect(page).to have_content "already verified"
|
|
|
|
within(".account-info") do
|
|
expect(page).to have_content "Identified as"
|
|
expect(page).to have_content user.username.to_s
|
|
|
|
click_link "Change user"
|
|
end
|
|
|
|
expect(page).to have_content "User session signed out successfully."
|
|
expect(page).not_to have_content "Identified as"
|
|
expect(page).not_to have_content user.username.to_s
|
|
expect(page).to have_current_path(management_root_path)
|
|
end
|
|
end
|