# frozen_string_literal: true

describe PrettyText do
  let(:post) { Fabricate(:post) }

  def n(html)
    html.strip
  end

  it "can spoil blocks" do
    md = PrettyText.cook("[spoiler]\nmy tests fail\n[/spoiler]")
    html = "<div class=\"spoiler\">\n<p>my tests fail</p>\n</div>"

    expect(md).to eq(html)
  end

  it "can spoil inline" do
    md = PrettyText.cook("I like watching [spoiler]my tests fail[/spoiler]")
    html = '<p>I like watching <span class="spoiler">my tests fail</span></p>'

    expect(md).to eq(html)
  end

  it "can replace spoilers in emails" do
    md = PrettyText.cook("I like watching [spoiler]my tests fail[/spoiler]")
    md = PrettyText.format_for_email(md, post)
    html =
      "<p>I like watching <span class=\"spoiler\"><a href=\"#{post.full_url}\">spoiler</a></span></p>"

    expect(md).to eq(html)
  end
end