47 lines
1.4 KiB
Ruby
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
|