* Create MarkdownFixer spec * Fix lint * Fix lint * Update GithubRepo::find_or_create * Fix failing specs * Fix failing specs * Add error handling for GithubReposController * Improve GithubRepo::update_to_latest
39 lines
1.3 KiB
Ruby
39 lines
1.3 KiB
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe MarkdownFixer do
|
|
let(:sample_title) { Faker::Book.title }
|
|
|
|
def create_sample_markdown(title)
|
|
<<~HEREDOC
|
|
---
|
|
title: #{title}
|
|
---
|
|
HEREDOC
|
|
end
|
|
|
|
describe "::add_quotes_to_title" do
|
|
it "escapes simple title" do
|
|
test = described_class.fix_all(create_sample_markdown(sample_title))
|
|
expect(test).to eq create_sample_markdown(%("#{sample_title}"))
|
|
end
|
|
|
|
it "does not escape titles that came pre-wrapped in single quotes" do
|
|
legacy_title = "'#{sample_title}'"
|
|
test = described_class.fix_all(create_sample_markdown(legacy_title))
|
|
expect(test).to eq create_sample_markdown(legacy_title)
|
|
end
|
|
|
|
it "does not escape titles that came pre-wrapped in double quotes" do
|
|
legacy_title = "\"#{sample_title}\""
|
|
test = described_class.fix_all(create_sample_markdown(legacy_title))
|
|
expect(test).to eq create_sample_markdown(legacy_title)
|
|
end
|
|
|
|
it "handles complex title" do
|
|
legacy_title = %(Book review: "#{sample_title}", part 1 I'm #deep)
|
|
expected_title = "\"Book review: \\\"#{sample_title}\\\", part 1 I'm #deep\""
|
|
test = described_class.fix_all(create_sample_markdown(legacy_title))
|
|
expect(test).to eq create_sample_markdown(expected_title)
|
|
end
|
|
end
|
|
end
|