43 lines
1.4 KiB
Ruby
43 lines
1.4 KiB
Ruby
require "test_helper"
|
|
|
|
class Card::AssignableTest < ActiveSupport::TestCase
|
|
test "assigning a user makes them watch the card" do
|
|
assert_not cards(:layout).assigned_to?(users(:kevin))
|
|
cards(:layout).unwatch_by users(:kevin)
|
|
|
|
with_current_user(:jz) do
|
|
cards(:layout).toggle_assignment(users(:kevin))
|
|
end
|
|
|
|
assert cards(:layout).assigned_to?(users(:kevin))
|
|
assert cards(:layout).watched_by?(users(:kevin))
|
|
end
|
|
|
|
test "toggle_assignment does not add assignee when at 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: "toggle_test_#{i}@example.com")
|
|
user = account.users.create!(identity: identity, name: "Toggle Test User #{i}", role: :member)
|
|
user.accesses.find_or_create_by!(board: board)
|
|
card.assignments.create!(assignee: user, assigner: users(:david))
|
|
end
|
|
|
|
identity = Identity.create!(email_address: "toggle_over@example.com")
|
|
extra_user = account.users.create!(identity: identity, name: "Toggle Over User", role: :member)
|
|
extra_user.accesses.find_or_create_by!(board: board)
|
|
|
|
with_current_user(:david) do
|
|
assert_no_difference "card.assignments.count" do
|
|
card.toggle_assignment(extra_user)
|
|
end
|
|
end
|
|
|
|
assert_not card.reload.assigned_to?(extra_user)
|
|
end
|
|
end
|