Files
fizzy/test/models/assignment_test.rb
2025-12-15 16:40:52 +01:00

39 lines
1.4 KiB
Ruby

require "test_helper"
class AssignmentTest < ActiveSupport::TestCase
test "create" do
card = cards(:text)
assignment = card.assignments.create!(assignee: users(:david), assigner: users(:jason))
assert_equal users(:david), assignment.assignee
assert_equal users(:jason), assignment.assigner
assert_equal card, assignment.card
end
test "create cannot exceed assignee limit" do
card = cards(:logo)
board = card.board
account = card.account
card.assignments.delete_all
Assignment::LIMIT.times do |i|
identity = Identity.create!(email_address: "limit_test_#{i}@example.com")
user = account.users.create!(identity: identity, name: "Limit Test User #{i}", role: :member)
user.accesses.find_or_create_by!(board: board)
card.assignments.create!(assignee: user, assigner: users(:david))
end
assert_equal Assignment::LIMIT, card.assignments.count
identity = Identity.create!(email_address: "over_limit@example.com")
extra_user = account.users.create!(identity: identity, name: "Over Limit User", role: :member)
extra_user.accesses.find_or_create_by!(board: board)
assignment = card.assignments.build(assignee: extra_user, assigner: users(:david))
assert_not assignment.valid?
assert_includes assignment.errors[:base], "Card already has the maximum of #{Assignment::LIMIT} assignees"
end
end