mirror of
https://github.com/discourse/discourse.git
synced 2025-06-22 06:51:59 +08:00

This commit moves most of emoji logic into the discourse-emojis gem: https://github.com/discourse/discourse-emojis/ Most notably: - images are now symlinked from the gem - the gem provides path to the json files Search aliases have also been made asynchronous and memoized. When you will search for an emoji we will now load the aliases and store the list for future use. --------- Co-authored-by: David Taylor <david@taylorhq.com>
58 lines
1.9 KiB
Ruby
58 lines
1.9 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.describe Onebox::Engine::GithubIssueOnebox do
|
|
let(:issue_uri) { "https://api.github.com/repos/discourse/discourse/issues/1" }
|
|
let(:repo_uri) { "https://api.github.com/repos/discourse/discourse" }
|
|
let(:repo_response) { onebox_response("githubrepo") }
|
|
|
|
before do
|
|
stub_request(:get, issue_uri).to_return(
|
|
status: 200,
|
|
body: onebox_response("github_issue_onebox"),
|
|
)
|
|
stub_request(:get, repo_uri).to_return(status: 200, body: repo_response)
|
|
end
|
|
|
|
include_context "with engines" do
|
|
let(:link) { "https://github.com/discourse/discourse/issues/1" }
|
|
end
|
|
it_behaves_like "an engine"
|
|
|
|
describe "#to_html" do
|
|
it "sanitizes the input and transform the emoji into an img tag" do
|
|
sanitized_label =
|
|
"Test <img src=\"/images/emoji/twitter/+1.png?v=#{Emoji::EMOJI_VERSION}\" title=\"+1\" class=\"emoji\" alt=\"+1\" loading=\"lazy\" width=\"20\" height=\"20\">"
|
|
expect(html).to include(sanitized_label)
|
|
end
|
|
|
|
it "sets the data-github-private-repo attr to false" do
|
|
expect(html).to include("data-github-private-repo=\"false\"")
|
|
end
|
|
|
|
context "when the PR is in a private repo" do
|
|
let(:repo_response) do
|
|
resp = MultiJson.load(onebox_response("githubrepo"))
|
|
resp["private"] = true
|
|
MultiJson.dump(resp)
|
|
end
|
|
|
|
it "sets the data-github-private-repo attr to true" do
|
|
expect(html).to include("data-github-private-repo=\"true\"")
|
|
end
|
|
end
|
|
|
|
context "when github_onebox_access_token is configured" do
|
|
before { SiteSetting.github_onebox_access_tokens = "discourse|github_pat_1234" }
|
|
|
|
it "sends it as part of the request" do
|
|
html
|
|
expect(WebMock).to have_requested(:get, issue_uri).with(
|
|
headers: {
|
|
"Authorization" => "Bearer github_pat_1234",
|
|
},
|
|
)
|
|
end
|
|
end
|
|
end
|
|
end
|