35 lines
1.5 KiB
Ruby
35 lines
1.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
RSpec.describe Gitlab::BackgroundMigration::PopulateTopicsTotalProjectsCountCache, schema: 20211006060436 do
|
|
it 'correctly populates total projects count cache' do
|
|
namespaces = table(:namespaces)
|
|
projects = table(:projects)
|
|
topics = table(:topics)
|
|
project_topics = table(:project_topics)
|
|
|
|
group = namespaces.create!(name: 'group', path: 'group')
|
|
project_1 = projects.create!(namespace_id: group.id)
|
|
project_2 = projects.create!(namespace_id: group.id)
|
|
project_3 = projects.create!(namespace_id: group.id)
|
|
topic_1 = topics.create!(name: 'Topic1')
|
|
topic_2 = topics.create!(name: 'Topic2')
|
|
topic_3 = topics.create!(name: 'Topic3')
|
|
topic_4 = topics.create!(name: 'Topic4')
|
|
|
|
project_topics.create!(project_id: project_1.id, topic_id: topic_1.id)
|
|
project_topics.create!(project_id: project_1.id, topic_id: topic_3.id)
|
|
project_topics.create!(project_id: project_2.id, topic_id: topic_3.id)
|
|
project_topics.create!(project_id: project_1.id, topic_id: topic_4.id)
|
|
project_topics.create!(project_id: project_2.id, topic_id: topic_4.id)
|
|
project_topics.create!(project_id: project_3.id, topic_id: topic_4.id)
|
|
|
|
subject.perform(topic_1.id, topic_4.id)
|
|
|
|
expect(topic_1.reload.total_projects_count).to eq(1)
|
|
expect(topic_2.reload.total_projects_count).to eq(0)
|
|
expect(topic_3.reload.total_projects_count).to eq(2)
|
|
expect(topic_4.reload.total_projects_count).to eq(3)
|
|
end
|
|
end
|