From: Andy Allan Date: Wed, 5 Jan 2022 20:29:12 +0000 (+0000) Subject: Use factorybot to build user objects X-Git-Tag: live~1289^2~1 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/88cf03ff005474de5eaf0285c92a24017fe341cf Use factorybot to build user objects This allows us to only specify attributes of interest in the test. --- diff --git a/test/models/user_test.rb b/test/models/user_test.rb index 76f520091..8a6e41013 100644 --- a/test/models/user_test.rb +++ b/test/models/user_test.rb @@ -4,12 +4,16 @@ class UserTest < ActiveSupport::TestCase include Rails::Dom::Testing::Assertions::SelectorAssertions def test_invalid_with_empty_attributes - user = User.new + user = build(:user, :email => nil, + :pass_crypt => nil, + :display_name => nil, + :home_lat => nil, + :home_lon => nil, + :home_zoom => nil) assert_not user.valid? assert user.errors[:email].any? assert user.errors[:pass_crypt].any? assert user.errors[:display_name].any? - assert user.errors[:email].any? assert user.errors[:home_lat].none? assert user.errors[:home_lon].none? assert user.errors[:home_zoom].none? @@ -17,28 +21,14 @@ class UserTest < ActiveSupport::TestCase def test_unique_email existing_user = create(:user) - new_user = User.new( - :email => existing_user.email, - :status => "active", - :pass_crypt => Digest::MD5.hexdigest("test"), - :display_name => "new user", - :data_public => 1, - :description => "desc" - ) + new_user = build(:user, :email => existing_user.email) assert_not new_user.save assert_includes new_user.errors[:email], "has already been taken" end def test_unique_display_name existing_user = create(:user) - new_user = User.new( - :email => "tester@openstreetmap.org", - :status => "pending", - :pass_crypt => Digest::MD5.hexdigest("test"), - :display_name => existing_user.display_name, - :data_public => 1, - :description => "desc" - ) + new_user = build(:user, :display_name => existing_user.display_name) assert_not new_user.save assert_includes new_user.errors[:display_name], "has already been taken" end