53 lines
1.3 KiB
Ruby
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
|