]> git.openstreetmap.org Git - rails.git/commitdiff
Test signup with confirmation email
authorAnton Khorev <tony29@yandex.ru>
Sun, 29 Dec 2024 01:09:42 +0000 (04:09 +0300)
committerAnton Khorev <tony29@yandex.ru>
Sun, 29 Dec 2024 01:09:42 +0000 (04:09 +0300)
test/system/user_signup_test.rb

index 38690d3d955af66ceb4725bd80e2ff86748cc2e5..ebd91340a53d6b51b78482a882fed2f7fb20b014 100644 (file)
@@ -1,6 +1,43 @@
 require "application_system_test_case"
 
 class UserSignupTest < ApplicationSystemTestCase
+  include ActionMailer::TestHelper
+
+  def setup
+    stub_request(:get, /.*gravatar.com.*d=404/).to_return(:status => 404)
+  end
+
+  test "Sign up with confirmation email" do
+    visit root_path
+
+    click_on "Sign Up"
+
+    within_content_body do
+      fill_in "Email", :with => "new_user_account@example.com"
+      fill_in "Display Name", :with => "new_user_account"
+      fill_in "Password", :with => "new_user_password"
+      fill_in "Confirm Password", :with => "new_user_password"
+
+      assert_emails 1 do
+        click_on "Sign Up"
+
+        assert_content "We sent you a confirmation email"
+      end
+    end
+
+    email = ActionMailer::Base.deliveries.first
+    assert_equal 1, email.to.count
+    assert_equal "new_user_account@example.com", email.to.first
+    email_text = email.parts[0].parts[0].decoded
+    match = %r{/user/new_user_account/confirm\?confirm_string=\S+}.match(email_text)
+    assert_not_nil match
+
+    visit match[0]
+
+    assert_content "new_user_account"
+    assert_content "Welcome!"
+  end
+
   test "Sign up from login page" do
     visit login_path