mirror of
https://github.com/discourse/discourse.git
synced 2025-02-05 19:11:13 +00:00
Add tests
This commit is contained in:
parent
b8cd6f66cf
commit
bc746823bd
9
spec/jobs/grant_all_badges_spec.rb
Normal file
9
spec/jobs/grant_all_badges_spec.rb
Normal file
@ -0,0 +1,9 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
RSpec.describe Jobs::GrantAllBadges do
|
||||
it "schedules a GrantBadge job for each badge" do
|
||||
described_class.new.execute({})
|
||||
|
||||
expect(Jobs::GrantBadge.jobs.size).to eq(Badge.enabled.size)
|
||||
end
|
||||
end
|
28
spec/jobs/grant_badge_spec.rb
Normal file
28
spec/jobs/grant_badge_spec.rb
Normal file
@ -0,0 +1,28 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
RSpec.describe Jobs::GrantBadge do
|
||||
subject(:job) { described_class.new }
|
||||
|
||||
let(:scheduled_jobs) { Sidekiq::ScheduledSet.new }
|
||||
|
||||
before { scheduled_jobs.clear }
|
||||
|
||||
it "schedules a EnsureBadgeConsistency job" do
|
||||
Sidekiq::Testing.disable! do
|
||||
badge_ids = Badge.enabled.pluck(:id)
|
||||
|
||||
threads =
|
||||
badge_ids[...3].map do |badge_id|
|
||||
Thread.new { described_class.new.execute({ badge_id: badge_id }) }
|
||||
end
|
||||
|
||||
# EnsureBadgeConsistency may be scheduled or not at this point, but it must
|
||||
# not be scheduled more than once
|
||||
expect(scheduled_jobs.size).to be <= 1
|
||||
|
||||
threads.each(&:join)
|
||||
|
||||
expect(scheduled_jobs.size).to eq(1)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user