Files
fizzy/test/models/board/publishable_test.rb
T
2025-11-05 13:41:12 +01:00

56 lines
1.4 KiB
Ruby

require "test_helper"
class Board::PublishableTest < ActiveSupport::TestCase
setup do
Current.session = sessions(:david)
end
test "published scope" do
boards(:writebook).publish
assert_includes Board.published, boards(:writebook)
assert_not_includes Board.published, boards(:private)
end
test "published?" do
assert_not boards(:writebook).published?
boards(:writebook).publish
assert boards(:writebook).published?
end
test "publish and unpublish" do
assert_not boards(:writebook).published?
assert_difference -> { Board::Publication.count }, +1 do
boards(:writebook).publish
end
assert boards(:writebook).published?
assert_difference -> { Board::Publication.count }, -1 do
boards(:writebook).unpublish
end
assert_not boards(:writebook).reload.published?
end
test "find board by publication key" do
boards(:writebook).publish
assert_equal boards(:writebook), Board.find_by_published_key(boards(:writebook).publication.key)
assert_raise ActiveRecord::RecordNotFound do
Board.find_by_published_key("invalid")
end
end
test "publish doesn't create duplicate publications" do
boards(:writebook).publish
original_publication = boards(:writebook).publication
assert_no_difference -> { Board::Publication.count } do
boards(:writebook).publish
end
assert_equal original_publication, boards(:writebook).reload.publication
end
end