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