summaryrefslogtreecommitdiff
path: root/test/integration/browser/password_validation_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/browser/password_validation_test.rb')
-rw-r--r--test/integration/browser/password_validation_test.rb33
1 files changed, 18 insertions, 15 deletions
diff --git a/test/integration/browser/password_validation_test.rb b/test/integration/browser/password_validation_test.rb
index 51fcc5d..c5f0676 100644
--- a/test/integration/browser/password_validation_test.rb
+++ b/test/integration/browser/password_validation_test.rb
@@ -3,29 +3,32 @@ require 'test_helper'
class PasswordValidationTest < BrowserIntegrationTest
test "password confirmation is validated" do
- username ||= "test_#{SecureRandom.urlsafe_base64}".downcase
- password ||= SecureRandom.base64
- visit '/signup'
- fill_in 'Username', with: username
- fill_in 'Password', with: password
- fill_in 'Password confirmation', with: password + "-typo"
- click_on 'Sign Up'
+ password = SecureRandom.base64
+ submit_signup_form password: password, confirmation: password + 'a'
assert page.has_content? "does not match."
assert_equal '/signup', current_path
- assert page.has_selector? ".error #srp_password_confirmation"
+ assert_error_for 'srp_password_confirmation'
end
test "password needs to be at least 8 chars long" do
+ submit_signup_form password: SecureRandom.base64[0,7]
+ assert page.has_content? "needs to be at least 8 characters long"
+ assert_equal '/signup', current_path
+ assert_error_for 'srp_password'
+ end
+
+ def submit_signup_form(username: nil, password: nil, confirmation: nil)
username ||= "test_#{SecureRandom.urlsafe_base64}".downcase
- password ||= SecureRandom.base64[0,7]
+ password ||= SecureRandom.base64
+ confirmation ||= password
visit '/signup'
fill_in 'Username', with: username
- fill_in 'Password', with: password
- fill_in 'Password confirmation', with: password
+ fill_in 'Password', with: password, match: :prefer_exact
+ fill_in 'Password confirmation', with: confirmation
click_on 'Sign Up'
- assert page.has_content? "needs to be at least 8 characters long"
- assert_equal '/signup', current_path
- assert page.has_selector? ".error #srp_password"
end
-end
+ def assert_error_for(id)
+ assert page.has_selector? ".has-error ##{id}"
+ end
+end