39 lines
1.4 KiB
Ruby
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
|