Files
fizzy/test/controllers/boards/publications_controller_test.rb
T
2025-11-12 11:48:35 +01:00

53 lines
1.3 KiB
Ruby

require "test_helper"
class Boards::PublicationsControllerTest < ActionDispatch::IntegrationTest
setup do
sign_in_as :kevin
@board = boards(:writebook)
end
test "publish a board" do
assert_not @board.published?
assert_changes -> { @board.reload.published? }, from: false, to: true do
post board_publication_path(@board, format: :turbo_stream)
end
assert_turbo_stream action: :replace, target: dom_id(@board, :publication)
end
test "unpublish a board" do
@board.publish
assert @board.published?
assert_changes -> { @board.reload.published? }, from: true, to: false do
delete board_publication_path(@board, format: :turbo_stream)
end
assert_turbo_stream action: :replace, target: dom_id(@board, :publication)
end
test "publish requires board admin permission" do
logout_and_sign_in_as :jz
assert_not @board.published?
post board_publication_path(@board, format: :turbo_stream)
assert_response :forbidden
assert_not @board.reload.published?
end
test "unpublish requires board admin permission" do
logout_and_sign_in_as :jz
@board.publish
assert @board.published?
delete board_publication_path(@board, format: :turbo_stream)
assert_response :forbidden
assert @board.reload.published?
end
end