mirror of
https://github.com/discourse/discourse.git
synced 2026-08-13 14:35:08 -05:00
DEV: Apply syntax_tree formatting to spec/*
This commit is contained in:
@@ -1,76 +1,72 @@
|
||||
# frozen_string_literal: true
|
||||
RSpec.describe "CommonMark" do
|
||||
it 'passes spec' do
|
||||
|
||||
it "passes spec" do
|
||||
SiteSetting.traditional_markdown_linebreaks = true
|
||||
SiteSetting.enable_markdown_typographer = false
|
||||
SiteSetting.highlighted_languages = 'ruby|aa'
|
||||
SiteSetting.highlighted_languages = "ruby|aa"
|
||||
|
||||
html, state, md = nil
|
||||
failed = 0
|
||||
|
||||
File.readlines(Rails.root + 'spec/fixtures/md/spec.txt').each do |line|
|
||||
if line == "```````````````````````````````` example\n"
|
||||
state = :example
|
||||
next
|
||||
end
|
||||
|
||||
if line == "````````````````````````````````\n"
|
||||
md.gsub!('→', "\t")
|
||||
html ||= String.new
|
||||
html.gsub!('→', "\t")
|
||||
html.strip!
|
||||
|
||||
# normalize brs
|
||||
html.gsub!('<br />', '<br>')
|
||||
html.gsub!('<hr />', '<hr>')
|
||||
html.gsub!(/<img([^>]+) \/>/, "<img\\1>")
|
||||
|
||||
SiteSetting.enable_markdown_linkify = false
|
||||
cooked = PrettyText.markdown(md, sanitize: false)
|
||||
cooked.strip!
|
||||
cooked.gsub!(" class=\"lang-auto\"", '')
|
||||
cooked.gsub!(/<span class="hashtag">(.*)<\/span>/, "\\1")
|
||||
cooked.gsub!(/<a name="(.*)" class="anchor" href="#\1*"><\/a>/, "")
|
||||
# we support data-attributes which is not in the spec
|
||||
cooked.gsub!("<pre data-code-startline=\"3\">", '<pre>')
|
||||
# we don't care about this
|
||||
cooked.gsub!("<blockquote>\n</blockquote>", "<blockquote></blockquote>")
|
||||
html.gsub!("<blockquote>\n</blockquote>", "<blockquote></blockquote>")
|
||||
html.gsub!("language-ruby", "lang-ruby")
|
||||
html.gsub!("language-aa", "lang-aa")
|
||||
# strip out unsupported languages
|
||||
html.gsub!(/ class="language-[;f].*"/, "")
|
||||
|
||||
unless cooked == html
|
||||
failed += 1
|
||||
puts "FAILED SPEC"
|
||||
puts "Expected: "
|
||||
puts html
|
||||
puts "Got: "
|
||||
puts cooked
|
||||
puts "Markdown: "
|
||||
puts md
|
||||
puts
|
||||
File
|
||||
.readlines(Rails.root + "spec/fixtures/md/spec.txt")
|
||||
.each do |line|
|
||||
if line == "```````````````````````````````` example\n"
|
||||
state = :example
|
||||
next
|
||||
end
|
||||
html, state, md = nil
|
||||
next
|
||||
end
|
||||
|
||||
if state == :example && line == ".\n"
|
||||
state = :html
|
||||
next
|
||||
end
|
||||
if line == "````````````````````````````````\n"
|
||||
md.gsub!("→", "\t")
|
||||
html ||= String.new
|
||||
html.gsub!("→", "\t")
|
||||
html.strip!
|
||||
|
||||
if state == :example
|
||||
md = (md || String.new) << line
|
||||
end
|
||||
# normalize brs
|
||||
html.gsub!("<br />", "<br>")
|
||||
html.gsub!("<hr />", "<hr>")
|
||||
html.gsub!(%r{<img([^>]+) />}, "<img\\1>")
|
||||
|
||||
if state == :html
|
||||
html = (html || String.new) << line
|
||||
end
|
||||
SiteSetting.enable_markdown_linkify = false
|
||||
cooked = PrettyText.markdown(md, sanitize: false)
|
||||
cooked.strip!
|
||||
cooked.gsub!(" class=\"lang-auto\"", "")
|
||||
cooked.gsub!(%r{<span class="hashtag">(.*)</span>}, "\\1")
|
||||
cooked.gsub!(%r{<a name="(.*)" class="anchor" href="#\1*"></a>}, "")
|
||||
# we support data-attributes which is not in the spec
|
||||
cooked.gsub!("<pre data-code-startline=\"3\">", "<pre>")
|
||||
# we don't care about this
|
||||
cooked.gsub!("<blockquote>\n</blockquote>", "<blockquote></blockquote>")
|
||||
html.gsub!("<blockquote>\n</blockquote>", "<blockquote></blockquote>")
|
||||
html.gsub!("language-ruby", "lang-ruby")
|
||||
html.gsub!("language-aa", "lang-aa")
|
||||
# strip out unsupported languages
|
||||
html.gsub!(%r{ class="language-[;f].*"}, "")
|
||||
|
||||
end
|
||||
unless cooked == html
|
||||
failed += 1
|
||||
puts "FAILED SPEC"
|
||||
puts "Expected: "
|
||||
puts html
|
||||
puts "Got: "
|
||||
puts cooked
|
||||
puts "Markdown: "
|
||||
puts md
|
||||
puts
|
||||
end
|
||||
html, state, md = nil
|
||||
next
|
||||
end
|
||||
|
||||
if state == :example && line == ".\n"
|
||||
state = :html
|
||||
next
|
||||
end
|
||||
|
||||
md = (md || String.new) << line if state == :example
|
||||
|
||||
html = (html || String.new) << line if state == :html
|
||||
end
|
||||
|
||||
expect(failed).to eq(0)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user