debian-mirror-gitlab/spec/lib/gitlab/background_migration/backfill_upvotes_count_on_issues_spec.rb
2021-09-30 23:02:18 +05:30

47 lines
1.4 KiB
Ruby

# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Gitlab::BackgroundMigration::BackfillUpvotesCountOnIssues, schema: 20210701111909 do
let(:award_emoji) { table(:award_emoji) }
let!(:namespace) { table(:namespaces).create!(name: 'namespace', path: 'namespace') }
let!(:project1) { table(:projects).create!(namespace_id: namespace.id) }
let!(:project2) { table(:projects).create!(namespace_id: namespace.id) }
let!(:issue1) { table(:issues).create!(project_id: project1.id) }
let!(:issue2) { table(:issues).create!(project_id: project2.id) }
let!(:issue3) { table(:issues).create!(project_id: project2.id) }
let!(:issue4) { table(:issues).create!(project_id: project2.id) }
describe '#perform' do
before do
add_upvotes(issue1, :thumbsdown, 1)
add_upvotes(issue2, :thumbsup, 2)
add_upvotes(issue2, :thumbsdown, 1)
add_upvotes(issue3, :thumbsup, 3)
add_upvotes(issue4, :thumbsup, 4)
end
it 'updates upvotes_count' do
subject.perform(issue1.id, issue4.id)
expect(issue1.reload.upvotes_count).to eq(0)
expect(issue2.reload.upvotes_count).to eq(2)
expect(issue3.reload.upvotes_count).to eq(3)
expect(issue4.reload.upvotes_count).to eq(4)
end
end
private
def add_upvotes(issue, name, count)
count.times do
award_emoji.create!(
name: name.to_s,
awardable_type: 'Issue',
awardable_id: issue.id
)
end
end
end