Add tests

This commit is contained in:
Bianca Nenciu 2024-12-20 22:30:22 +02:00
parent b8cd6f66cf
commit bc746823bd
No known key found for this signature in database
GPG Key ID: 07E83B117A6B844D
2 changed files with 37 additions and 0 deletions

View 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

View 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