discourse/spec/lib/onebox/engine/github_commit_onebox_spec.rb
2022-08-04 11:05:02 +02:00

114 lines
3.2 KiB
Ruby

# frozen_string_literal: true
RSpec.describe Onebox::Engine::GithubCommitOnebox do
describe "regular commit url" do
before do
@link = "https://github.com/discourse/discourse/commit/803d023e2307309f8b776ab3b8b7e38ba91c0919"
@uri = "https://api.github.com/repos/discourse/discourse/commits/803d023e2307309f8b776ab3b8b7e38ba91c0919"
stub_request(:get, @uri).to_return(status: 200, body: onebox_response("githubcommit"))
end
include_context "with engines"
it_behaves_like "an engine"
describe "#to_html" do
it "includes owner" do
expect(html).to include("discourse")
end
it "includes repository name" do
expect(html).to include("discourse")
end
it "includes commit sha" do
expect(html).to include("803d023e2307309f8b776ab3b8b7e38ba91c0919")
end
it "includes commit author gravatar" do
expect(html).to include("2F7d3010c11d08cf990b7614d2c2ca9098.png")
end
it "includes commit message" do
expect(html).to include("Fixed GitHub auth")
end
it "includes commit author" do
expect(html).to include("SamSaffron")
end
it "includes commit time and date" do
expect(html).to include("02:16AM - 02 Aug 13 UTC")
end
it "includes number of files changed" do
expect(html).to include("1 file")
end
it "includes number of additions" do
expect(html).to include("18 additions")
end
it "includes number of deletions" do
expect(html).to include("2 deletions")
end
end
end
describe "PR with commit URL" do
before do
@link = "https://github.com/discourse/discourse/pull/4662/commit/803d023e2307309f8b776ab3b8b7e38ba91c0919"
@uri = "https://api.github.com/repos/discourse/discourse/commit/803d023e2307309f8b776ab3b8b7e38ba91c0919"
stub_request(:get, "https://api.github.com/repos/discourse/discourse/commits/803d023e2307309f8b776ab3b8b7e38ba91c0919")
.to_return(status: 200, body: onebox_response("githubcommit"))
end
include_context "with engines"
# TODO: fix test to make sure it's not failing when matching object
# it_behaves_like "an engine"
describe "#to_html" do
it "includes owner" do
expect(html).to include("discourse")
end
it "includes repository name" do
expect(html).to include("discourse")
end
it "includes commit sha" do
expect(html).to include("803d023e2307309f8b776ab3b8b7e38ba91c0919")
end
it "includes commit author gravatar" do
expect(html).to include("2F7d3010c11d08cf990b7614d2c2ca9098.png")
end
it "includes commit message" do
expect(html).to include("Fixed GitHub auth")
end
it "includes commit author" do
expect(html).to include("SamSaffron")
end
it "includes commit time and date" do
expect(html).to include("02:16AM - 02 Aug 13 UTC")
end
it "includes number of files changed" do
expect(html).to include("1 file")
end
it "includes number of additions" do
expect(html).to include("18 additions")
end
it "includes number of deletions" do
expect(html).to include("2 deletions")
end
end
end
end