Linking a commit from a GitHub pull request included the complete commit message, instead of just the first line. The rest of the commit message will be added to the body of the Onebox.
81 lines
2.5 KiB
Ruby
81 lines
2.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.describe Onebox::Engine::GithubPullRequestOnebox do
|
|
before do
|
|
@link = "https://github.com/discourse/discourse/pull/1253/"
|
|
@uri = "https://api.github.com/repos/discourse/discourse/pulls/1253"
|
|
|
|
stub_request(:get, @uri).to_return(status: 200, body: onebox_response(described_class.onebox_name))
|
|
end
|
|
|
|
include_context "with engines"
|
|
it_behaves_like "an engine"
|
|
|
|
describe "#to_html" do
|
|
it "includes pull request author" do
|
|
expect(html).to include("jamesaanderson")
|
|
end
|
|
|
|
it "includes repository name" do
|
|
expect(html).to include("discourse")
|
|
end
|
|
|
|
it "includes commit author gravatar" do
|
|
expect(html).to include("b3e9977094ce189bbb493cf7f9adea21")
|
|
end
|
|
|
|
it "includes commit time and date" do
|
|
expect(html).to include("02:05AM - 26 Jul 13")
|
|
end
|
|
|
|
it "includes number of commits" do
|
|
expect(html).to include("1")
|
|
end
|
|
|
|
it "includes number of files changed" do
|
|
expect(html).to include("4")
|
|
end
|
|
|
|
it "includes number of additions" do
|
|
expect(html).to include("19")
|
|
end
|
|
|
|
it "includes number of deletions" do
|
|
expect(html).to include("1")
|
|
end
|
|
|
|
it "includes the body without comments" do
|
|
expect(html).to include("http://meta.discourse.org/t/audio-html5-tag/8168")
|
|
expect(html).not_to include("test comment")
|
|
end
|
|
end
|
|
|
|
context "with commit links" do
|
|
before do
|
|
@link = "https://github.com/discourse/discourse/pull/1253/commits/d7d3be1130c665cc7fab9f05dbf32335229137a6"
|
|
@uri = "https://api.github.com/repos/discourse/discourse/commits/d7d3be1130c665cc7fab9f05dbf32335229137a6"
|
|
|
|
stub_request(:get, @uri).to_return(status: 200, body: onebox_response(described_class.onebox_name + "_commit"))
|
|
end
|
|
|
|
it "includes commit name" do
|
|
doc = Nokogiri::HTML5(html)
|
|
expect(doc.css('h4').text.strip).to eq("Add audio onebox")
|
|
expect(doc.css('.github-body-container').text).to include("http://meta.discourse.org/t/audio-html5-tag/8168")
|
|
end
|
|
end
|
|
|
|
context "with comment links" do
|
|
before do
|
|
@link = "https://github.com/discourse/discourse/pull/1253/#issuecomment-21597425"
|
|
@uri = "https://api.github.com/repos/discourse/discourse/issues/comments/21597425"
|
|
|
|
stub_request(:get, @uri).to_return(status: 200, body: onebox_response(described_class.onebox_name + "_comment"))
|
|
end
|
|
|
|
it "includes comment" do
|
|
expect(html).to include("You've signed the CLA")
|
|
end
|
|
end
|
|
end
|