aboutsummaryrefslogtreecommitdiffstats
path: root/activestorage/test/template/image_tag_test.rb
blob: 258cf702ad3b8d25203502824c431f29dd22055e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# frozen_string_literal: true

require "test_helper"
require "database/setup"

class ActiveStorage::ImageTagTest < ActionView::TestCase
  tests ActionView::Helpers::AssetTagHelper

  setup do
    @blob = create_file_blob filename: "racecar.jpg"
  end

  test "blob" do
    assert_dom_equal %(<img src="#{polymorphic_url @blob}" />), image_tag(@blob)
  end

  test "variant" do
    variant = @blob.variant(resize: "100x100")
    assert_dom_equal %(<img src="#{polymorphic_url variant}" />), image_tag(variant)
  end

  test "preview" do
    blob = create_file_blob(filename: "report.pdf", content_type: "application/pdf")
    preview = blob.preview(resize: "100x100")
    assert_dom_equal %(<img src="#{polymorphic_url preview}" />), image_tag(preview)
  end

  test "attachment" do
    attachment = ActiveStorage::Attachment.new(blob: @blob)
    assert_dom_equal %(<img src="#{polymorphic_url attachment}" />), image_tag(attachment)
  end

  test "error when attachment's empty" do
    @user = User.create!(name: "DHH")

    assert_not_predicate @user.avatar, :attached?
    assert_raises(ArgumentError) { image_tag(@user.avatar) }
  end

  test "error when object can't be resolved into URL" do
    unresolvable_object = ActionView::Helpers::AssetTagHelper
    assert_raises(ArgumentError) { image_tag(unresolvable_object) }
  end
end