Files
fizzy/test/models/command/close_test.rb
T
2025-05-28 12:13:40 -04:00

52 lines
1.4 KiB
Ruby

require "test_helper"
class Command::CloseTest < ActionDispatch::IntegrationTest
include CommandTestHelper
setup do
Current.session = sessions(:david)
@card = cards(:text)
end
test "close card on perma" do
assert_changes -> { @card.reload.closed? }, from: false, to: true do
execute_command "/close", context_url: collection_card_url(@card.collection, @card)
end
assert_equal Closure::Reason.default, @card.closure.reason
assert_equal users(:david), @card.closed_by
end
test "close card on perma with reason" do
assert_changes -> { @card.reload.closed? }, from: false, to: true do
execute_command "/close Not now", context_url: collection_card_url(@card.collection, @card)
end
assert_equal users(:david), @card.closed_by
assert_equal "Not now", @card.closure.reason
end
test "close cards on cards' index page" do
cards = cards(:logo, :text, :layout)
cards.each(&:reopen)
execute_command "/close", context_url: collection_cards_url(@card.collection)
assert cards.map(&:reload).all?(&:closed?)
end
test "undo close" do
cards = cards(:logo, :text, :layout)
cards.each(&:reopen)
command = parse_command "/close", context_url: collection_cards_url(@card.collection)
command.execute
assert cards.map(&:reload).all?(&:closed?)
command.undo
assert cards.map(&:reload).all?(&:open?)
end
end