gitlab-org--gitlab-foss/spec/lib/banzai/pipeline/wiki_pipeline_spec.rb

57 lines
1.4 KiB
Ruby
Raw Normal View History

require 'rails_helper'
describe Banzai::Pipeline::WikiPipeline do
2016-04-01 03:03:08 -04:00
let(:project_wiki) { double }
before(:each) { allow(project_wiki).to receive(:wiki_base_path) { '/some/repo/wikis' } }
describe 'TableOfContents' do
it 'replaces the tag with the TableOfContentsFilter result' do
markdown = <<-MD.strip_heredoc
[[_TOC_]]
## Header
Foo
MD
2016-04-01 03:03:08 -04:00
result = described_class.call(markdown, project: spy, project_wiki: project_wiki)
aggregate_failures do
expect(result[:output].text).not_to include '[['
expect(result[:output].text).not_to include 'TOC'
expect(result[:output].to_html).to include(result[:toc])
end
end
it 'is case-sensitive' do
markdown = <<-MD.strip_heredoc
[[_toc_]]
# Header 1
Foo
MD
2016-04-01 03:03:08 -04:00
output = described_class.to_html(markdown, project: spy, project_wiki: project_wiki)
expect(output).to include('[[<em>toc</em>]]')
end
it 'handles an empty pipeline result' do
# No Markdown headers in this doc, so `result[:toc]` will be empty
markdown = <<-MD.strip_heredoc
[[_TOC_]]
Foo
MD
2016-04-01 03:03:08 -04:00
output = described_class.to_html(markdown, project: spy, project_wiki: project_wiki)
aggregate_failures do
expect(output).not_to include('<ul>')
expect(output).not_to include('[[<em>TOC</em>]]')
end
end
end
end