54 lines
998 B
Ruby
54 lines
998 B
Ruby
|
require 'rails_helper'
|
||
|
|
||
|
describe Banzai::Filter::YamlFrontMatterFilter do
|
||
|
include FilterSpecHelper
|
||
|
|
||
|
it 'allows for `encoding:` before the frontmatter' do
|
||
|
content = <<-MD.strip_heredoc
|
||
|
# encoding: UTF-8
|
||
|
---
|
||
|
foo: foo
|
||
|
---
|
||
|
|
||
|
# Header
|
||
|
|
||
|
Content
|
||
|
MD
|
||
|
|
||
|
output = filter(content)
|
||
|
|
||
|
expect(output).not_to match 'encoding'
|
||
|
end
|
||
|
|
||
|
it 'converts YAML frontmatter to a fenced code block' do
|
||
|
content = <<-MD.strip_heredoc
|
||
|
---
|
||
|
bar: :bar_symbol
|
||
|
---
|
||
|
|
||
|
# Header
|
||
|
|
||
|
Content
|
||
|
MD
|
||
|
|
||
|
output = filter(content)
|
||
|
|
||
|
aggregate_failures do
|
||
|
expect(output).not_to include '---'
|
||
|
expect(output).to include "```yaml\nbar: :bar_symbol\n```"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'on content without frontmatter' do
|
||
|
it 'returns the content unmodified' do
|
||
|
content = <<-MD.strip_heredoc
|
||
|
# This is some Markdown
|
||
|
|
||
|
It has no YAML frontmatter to parse.
|
||
|
MD
|
||
|
|
||
|
expect(filter(content)).to eq content
|
||
|
end
|
||
|
end
|
||
|
end
|