mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-03 05:29:42 +08:00
42 lines
1.1 KiB
Ruby
42 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
describe GithubPermalinks do
|
|
before { enable_current_plugin }
|
|
|
|
context "when it doesn't contain github link to the file" do
|
|
let(:post) { Fabricate(:post, raw: "there is no github link") }
|
|
|
|
it "it does not run the job" do
|
|
Jobs.expects(:cancel_scheduled_job).never
|
|
GithubPermalinks.replace_github_non_permalinks(post)
|
|
end
|
|
end
|
|
|
|
context "when it contains github link" do
|
|
let(:post) do
|
|
Fabricate(
|
|
:post,
|
|
raw: "https://github.com/discourse/onebox/blob/master/lib/onebox/engine/gfycat_onebox.rb",
|
|
)
|
|
end
|
|
|
|
it "ensures only one job is scheduled right after the editing_grace_period" do
|
|
freeze_time
|
|
|
|
Jobs
|
|
.expects(:cancel_scheduled_job)
|
|
.with(:replace_github_non_permalinks, post_id: post.id)
|
|
.once
|
|
delay = SiteSetting.editing_grace_period + 1
|
|
|
|
expect_enqueued_with(
|
|
job: :replace_github_non_permalinks,
|
|
args: {
|
|
post_id: post.id,
|
|
bypass_bump: false,
|
|
},
|
|
at: Time.zone.now + delay,
|
|
) { GithubPermalinks.replace_github_non_permalinks(post) }
|
|
end
|
|
end
|
|
end
|