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

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