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