Files
2025-12-03 13:29:20 +01:00

38 lines
1.1 KiB
Ruby

require "test_helper"
class Identity::JoinableTest < ActiveSupport::TestCase
test "join creates a new user and returns true" do
identity = identities(:david)
assert_difference -> { User.count }, 1 do
result = identity.join(accounts(:initech))
assert result, "join should return true when creating a new user"
end
user = identity.users.find_by!(account: accounts(:initech))
assert_equal identity.email_address, user.name
end
test "join with custom attributes" do
identity = identities(:mike)
result = identity.join(accounts("37s"), name: "Mike")
assert result
user = identity.users.find_by!(account: accounts("37s"))
assert_equal "Mike", user.name
end
test "join returns false if user already exists" do
identity = identities(:david)
account = accounts("37s")
assert identity.users.exists?(account: account), "David should already be a member of 37s"
assert_no_difference -> { User.count } do
result = identity.join(account)
assert_not result, "join should return false when user already exists"
end
end
end