1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-08-05 05:25:24 +02:00

Add initial model tests with starter fixtures for User, Family, and Account (#281)

* Add initial user fixture

* Add initial tests for  the User model

* Add initial tests for Family and a valid Account

* Pass rubocop
This commit is contained in:
Lee McAlilly 2024-02-03 13:07:23 -06:00 committed by GitHub
parent 472746df06
commit 69698d0463
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 107 additions and 35 deletions

View file

@ -1,7 +1,11 @@
require "test_helper"
class AccountTest < ActiveSupport::TestCase
# test "the truth" do
# assert true
# end
test "new account should be valid" do
depository = Account::Depository.create!
account = Account.create!(family: families(:dylan_family), name: "Explicit Checking", balance: 1200, accountable: depository)
assert account.valid?
assert_not_nil account.accountable_id
assert_not_nil account.accountable
end
end

View file

@ -1,7 +1,28 @@
require "test_helper"
class FamilyTest < ActiveSupport::TestCase
# test "the truth" do
# assert true
# end
def setup
@dylan_family = families(:dylan_family)
end
test "should have many users" do
assert_equal 2, @dylan_family.users.size
assert @dylan_family.users.include?(users(:bob))
end
test "should have many accounts" do
assert_equal 2, @dylan_family.accounts.size
end
test "should destroy dependent users" do
assert_difference("User.count", -@dylan_family.users.count) do
@dylan_family.destroy
end
end
test "should destroy dependent accounts" do
assert_difference("Account.count", -@dylan_family.accounts.count) do
@dylan_family.destroy
end
end
end

View file

@ -1,7 +1,46 @@
require "test_helper"
class UserTest < ActiveSupport::TestCase
# test "the truth" do
# assert true
# end
def setup
@user = users(:bob)
end
test "should be valid" do
assert @user.valid?, @user.errors.full_messages.to_sentence
end
# email
test "email must be present" do
potential_user = User.new(
email: "david@davidbowie.com",
password_digest: BCrypt::Password.create("password"),
first_name: "David",
last_name: "Bowie"
)
potential_user.email = " "
assert_not potential_user.valid?
end
test "has email address" do
assert_equal "bob@bobdylan.com", @user.email
end
test "can update email" do
@user.update(email: "new_email@example.com")
assert_equal "new_email@example.com", @user.email
end
test "email addresses must be unique" do
duplicate_user = @user.dup
duplicate_user.email = @user.email.upcase
@user.save
assert_not duplicate_user.valid?
end
test "email addresses are be saved as lower-case" do
mixed_case_email = "Foo@ExAMPle.CoM"
@user.email = mixed_case_email
@user.save
assert_equal mixed_case_email.downcase, @user.reload.email
end
end