Files
grecia/spec/system/management/account_spec.rb
Javi Martín f52a86b465 Apply (but don't add) Capybara/SpecificMatcher rule
This rule was added in rubocop-rspec 2.12.0, and we were already
following it most of the time.

However, the rule isn't working correctly in some cases, such as input
selectors, so we aren't enabling it.
2023-09-06 19:00:56 +02:00

111 lines
3.0 KiB
Ruby

require "rails_helper"
describe "Account" do
scenario "Should not allow unverified users to edit their account" do
user = create(:user)
login_managed_user(user)
login_as_manager
click_link "Reset password via email"
expect(page).to have_content "No verified user logged in yet"
end
scenario "Send reset password email to currently managed user session" do
user = create(:user, :level_three)
login_managed_user(user)
login_as_manager
click_link "Reset password via email"
click_link "Send reset password email"
expect(page).to have_content "Email correctly sent."
email = ActionMailer::Base.deliveries.last
expect(email).to have_text "Change your password"
end
scenario "Manager changes the password by hand (writen by them)" do
user = create(:user, :level_three)
login_managed_user(user)
login_as_manager
click_link "Reset password manually"
find(:css, "input[id$='user_password']").set("new_password")
click_button "Save password"
expect(page).to have_content "Password reseted successfully"
logout
login_through_form_with_email_and_password(user.email, "new_password")
expect(page).to have_content "You have been signed in successfully."
end
scenario "Manager generates random password" do
user = create(:user, :level_three)
login_managed_user(user)
login_as_manager
click_link "Reset password manually"
click_link "Generate random password"
new_password = find_field("user_password").value
click_button "Save password"
expect(page).to have_content "Password reseted successfully"
logout
login_through_form_with_email_and_password(user.username, new_password)
expect(page).to have_content "You have been signed in successfully."
end
scenario "The password is printed" do
user = create(:user, :level_three)
login_managed_user(user)
login_as_manager
click_link "Reset password manually"
find(:css, "input[id$='user_password']").set("another_new_password")
click_button "Save password"
expect(page).to have_content "Password reseted successfully"
expect(page).to have_link "Print password", href: "javascript:window.print();"
expect(page).to have_css("div.for-print-only", text: "another_new_password", visible: :hidden)
end
describe "When a user has not been selected" do
before do
Setting["feature.user.skip_verification"] = "true"
end
scenario "we can't reset password via email" do
login_as_manager
click_link "Reset password via email"
expect(page).to have_content "To perform this action you must select a user"
expect(page).to have_current_path management_document_verifications_path
end
scenario "we can't reset password manually" do
login_as_manager
click_link "Reset password manually"
expect(page).to have_content "To perform this action you must select a user"
expect(page).to have_current_path management_document_verifications_path
end
end
end