Sha256: a9636d519260b79621805af5fcbf14718fd4247ca8fa2fcfb27a3f10a4db265d

Contents?: true

Size: 1.62 KB

Versions: 2

Compression:

Stored size: 1.62 KB

Contents

require "test_helper"

class GovspeakAttachmentLinkTest < Minitest::Test
  def render_govspeak(govspeak, attachments = [])
    Govspeak::Document.new(govspeak, attachments: attachments).to_html
  end

  test "renders an empty string for attachment link that is not found" do
    assert_equal("\n", render_govspeak("[AttachmentLink:file.pdf]", []))
  end

  test "renders an attachment link component for a found attachment link" do
    attachment = {
      id: "attachment.pdf",
      url: "http://example.com/attachment.pdf",
      title: "Attachment Title",
    }

    rendered = render_govspeak("[AttachmentLink:attachment.pdf]", [attachment])
    assert_match(/<span class="gem-c-attachment-link">/, rendered)
    assert_match(%r{href="http://example.com/attachment.pdf"}, rendered)
  end

  test "renders an attachment link inside a paragraph" do
    attachment = {
      id: "attachment.pdf",
      url: "http://example.com/attachment.pdf",
      title: "Attachment Title",
    }

    rendered = render_govspeak("[AttachmentLink:attachment.pdf] test", [attachment])
    root = Nokogiri::HTML.fragment(rendered).css(":root").first

    assert(root.name, "p")
    assert(root.css("p").size, 0)
    assert_match(/Attachment Title\s*test/, root.text)
  end

  test "allows spaces and special characters in the identifier" do
    attachment = {
      id: "This is the name of my &%$@€? attachment",
      url: "http://example.com/attachment.pdf",
      title: "Attachment Title",
    }

    rendered = render_govspeak("[AttachmentLink: This is the name of my &%$@€? attachment]", [attachment])
    assert_match(/Attachment Title/, rendered)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
govspeak-8.0.1 test/govspeak_attachment_link_test.rb
govspeak-8.0.0 test/govspeak_attachment_link_test.rb