summaryrefslogtreecommitdiff
path: root/spec/finders/projects/topics_finder_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/finders/projects/topics_finder_spec.rb')
-rw-r--r--spec/finders/projects/topics_finder_spec.rb28
1 files changed, 22 insertions, 6 deletions
diff --git a/spec/finders/projects/topics_finder_spec.rb b/spec/finders/projects/topics_finder_spec.rb
index 3812f0757bc..d6e90e5958f 100644
--- a/spec/finders/projects/topics_finder_spec.rb
+++ b/spec/finders/projects/topics_finder_spec.rb
@@ -5,13 +5,13 @@ require 'spec_helper'
RSpec.describe Projects::TopicsFinder do
let_it_be(:user) { create(:user) }
- let!(:topic1) { create(:topic, name: 'topicB') }
- let!(:topic2) { create(:topic, name: 'topicC') }
- let!(:topic3) { create(:topic, name: 'topicA') }
+ let_it_be(:topic1) { create(:topic, name: 'topicB') }
+ let_it_be(:topic2) { create(:topic, name: 'topicC') }
+ let_it_be(:topic3) { create(:topic, name: 'topicA') }
- let!(:project1) { create(:project, :public, namespace: user.namespace, topic_list: 'topicC, topicA, topicB') }
- let!(:project2) { create(:project, :public, namespace: user.namespace, topic_list: 'topicC, topicA') }
- let!(:project3) { create(:project, :public, namespace: user.namespace, topic_list: 'topicC') }
+ let_it_be(:project1) { create(:project, :public, namespace: user.namespace, topic_list: 'topicC, topicA, topicB') }
+ let_it_be(:project2) { create(:project, :public, namespace: user.namespace, topic_list: 'topicC, topicA') }
+ let_it_be(:project3) { create(:project, :public, namespace: user.namespace, topic_list: 'topicC') }
describe '#execute' do
it 'returns topics' do
@@ -41,5 +41,21 @@ RSpec.describe Projects::TopicsFinder do
end
end
end
+
+ context 'filter by without_projects' do
+ let_it_be(:topic4) { create(:topic, name: 'unassigned topic') }
+
+ it 'returns topics without assigned projects' do
+ topics = described_class.new(params: { without_projects: true }).execute
+
+ expect(topics).to contain_exactly(topic4)
+ end
+
+ it 'returns topics without assigned projects' do
+ topics = described_class.new(params: { without_projects: false }).execute
+
+ expect(topics).to contain_exactly(topic1, topic2, topic3, topic4)
+ end
+ end
end
end