37 lines
1.0 KiB
Ruby
37 lines
1.0 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
require_migration!
|
|
|
|
RSpec.describe ScheduleMergeTopicsWithSameName do
|
|
let(:topics) { table(:topics) }
|
|
|
|
describe '#up' do
|
|
before do
|
|
stub_const("#{described_class}::BATCH_SIZE", 2)
|
|
|
|
topics.create!(name: 'topic1')
|
|
topics.create!(name: 'Topic2')
|
|
topics.create!(name: 'Topic3')
|
|
topics.create!(name: 'Topic4')
|
|
topics.create!(name: 'topic2')
|
|
topics.create!(name: 'topic3')
|
|
topics.create!(name: 'topic4')
|
|
topics.create!(name: 'TOPIC2')
|
|
topics.create!(name: 'topic5')
|
|
end
|
|
|
|
it 'schedules MergeTopicsWithSameName background jobs', :aggregate_failures do
|
|
Sidekiq::Testing.fake! do
|
|
freeze_time do
|
|
migrate!
|
|
|
|
expect(described_class::MIGRATION).to be_scheduled_delayed_migration(2.minutes, %w[topic2 topic3])
|
|
expect(described_class::MIGRATION).to be_scheduled_delayed_migration(4.minutes, %w[topic4])
|
|
expect(BackgroundMigrationWorker.jobs.size).to eq(2)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|