-
Notifications
You must be signed in to change notification settings - Fork 198
Expand file tree
/
Copy pathimage_upload_component_test.rb
More file actions
68 lines (51 loc) · 3.27 KB
/
Copy pathimage_upload_component_test.rb
File metadata and controls
68 lines (51 loc) · 3.27 KB
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
require "test_helper"
class Admin::EditionImages::ImageUploadComponentTest < ViewComponent::TestCase
include Rails.application.routes.url_helpers
test "uses correct plurality in label" do
edition = build_stubbed(:draft_publication)
usage = ImageUsage.new(key: "test_usage", kinds: [Whitehall.image_kinds.fetch("default")], multiple: false)
render_inline(Admin::EditionImages::ImageUploadComponent.new(edition:, image_usage: usage))
assert_selector "label", text: "Upload image"
usage = ImageUsage.new(key: "test_usage", kinds: [Whitehall.image_kinds.fetch("default")], multiple: true)
render_inline(Admin::EditionImages::ImageUploadComponent.new(edition:, image_usage: usage))
assert_selector "label", text: "Upload images"
end
test "sets multiple attribute to value configured for image usage" do
edition = build_stubbed(:draft_publication)
usage = ImageUsage.new(key: "test_usage", kinds: [Whitehall.image_kinds.fetch("default")], multiple: true, label: "test")
render_inline(Admin::EditionImages::ImageUploadComponent.new(edition:, image_usage: usage))
assert_selector "input[type=\"file\"][multiple]"
end
test "renders hidden usage input" do
edition = build_stubbed(:draft_publication)
usage = ImageUsage.new(key: "test_usage", kinds: [Whitehall.image_kinds.fetch("default")], multiple: true, label: "test")
render_inline(Admin::EditionImages::ImageUploadComponent.new(edition:, image_usage: usage))
assert_selector "input[name=\"usage\"][value=\"test_usage\"]", visible: false
end
test "renders hidden image data kind input" do
edition = build_stubbed(:draft_publication)
usage = ImageUsage.new(key: "test_usage", kinds: [Whitehall.image_kinds.fetch("default")], multiple: false, label: "test")
render_inline(Admin::EditionImages::ImageUploadComponent.new(edition:, image_usage: usage))
assert_selector "input[name=\"image_kind\"][value=\"default\"]", visible: false
end
test "renders inline errors for failed images" do
edition = build_stubbed(:draft_publication)
usage = ImageUsage.new(key: "test_usage", kinds: [Whitehall.image_kinds.fetch("default")], multiple: false, label: "test")
failed_image = build(:image, image_data: ImageData.new(image_kind: "default", file: nil))
failed_image.valid?
render_inline(Admin::EditionImages::ImageUploadComponent.new(edition:, failed_images: [failed_image], image_usage: usage))
assert_selector ".govuk-form-group--error input[type=\"file\"]"
end
test "renders no inline errors when failed_images is empty" do
edition = build_stubbed(:draft_publication)
usage = ImageUsage.new(key: "test_usage", kinds: [Whitehall.image_kinds.fetch("default")], multiple: false, label: "test")
render_inline(Admin::EditionImages::ImageUploadComponent.new(edition:, failed_images: [], image_usage: usage))
assert_no_selector ".govuk-form-group--error"
end
test "does not allow svgs if usage is 'lead'" do
edition = build_stubbed(:standard_edition)
usage = ImageUsage.new(key: "lead", kinds: [Whitehall.image_kinds.fetch("default")], multiple: false, label: "lead")
component = Admin::EditionImages::ImageUploadComponent.new(edition:, image_usage: usage)
assert_equal "image/png, image/jpeg, image/gif", component.allowed_extensions
end
end