summaryrefslogtreecommitdiff
path: root/test/models/related_asset_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/models/related_asset_test.rb')
-rw-r--r--test/models/related_asset_test.rb44
1 files changed, 40 insertions, 4 deletions
diff --git a/test/models/related_asset_test.rb b/test/models/related_asset_test.rb
index a739e6bb..710b4cc4 100644
--- a/test/models/related_asset_test.rb
+++ b/test/models/related_asset_test.rb
@@ -1,8 +1,44 @@
1require 'test_helper' 1require 'test_helper'
2 2
3class RelatedImageTest < ActiveSupport::TestCase 3class RelatedAssetTest < ActiveSupport::TestCase
4 # Replace this with your real tests. 4 test "headline can be set on an image asset" do
5 test "the truth" do 5 node = Node.root.children.create!(:slug => "related_asset_headline_image_test")
6 assert true 6 asset = Asset.create!(:name => "photo", :upload_content_type => "image/png")
7 node.draft.assets << asset
8 related = node.draft.related_assets.find_by(:asset_id => asset.id)
9
10 related.headline = true
11 assert related.valid?
12 end
13
14 test "headline cannot be set on a non-image asset" do
15 node = Node.root.children.create!(:slug => "related_asset_headline_pdf_test")
16 asset = Asset.create!(:name => "programme", :upload_content_type => "application/pdf")
17 node.draft.assets << asset
18 related = node.draft.related_assets.find_by(:asset_id => asset.id)
19
20 related.headline = true
21 assert_not related.valid?
22 assert_includes related.errors[:headline], "can only be set on image assets"
23 end
24
25 test "the headline validation does not raise when asset is missing" do
26 related = RelatedAsset.new(:headline => true)
27 assert_not related.valid?
28 end
29
30 test "at most one headline per page is enforced at the database level" do
31 node = Node.root.children.create!(:slug => "related_asset_headline_uniqueness_test")
32 first = Asset.create!(:name => "first", :upload_content_type => "image/png")
33 second = Asset.create!(:name => "second", :upload_content_type => "image/png")
34 node.draft.assets << first
35 node.draft.assets << second
36
37 node.draft.related_assets.find_by(:asset_id => first.id).update!(:headline => true)
38 second_related = node.draft.related_assets.find_by(:asset_id => second.id)
39
40 assert_raises(ActiveRecord::RecordNotUnique) do
41 RelatedAsset.where(:id => second_related.id).update_all(:headline => true)
42 end
7 end 43 end
8end 44end