diff options
Diffstat (limited to 'spec/finders/admin/plans_finder_spec.rb')
-rw-r--r-- | spec/finders/admin/plans_finder_spec.rb | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/spec/finders/admin/plans_finder_spec.rb b/spec/finders/admin/plans_finder_spec.rb new file mode 100644 index 00000000000..9ea5944147c --- /dev/null +++ b/spec/finders/admin/plans_finder_spec.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Admin::PlansFinder do + let_it_be(:plan1) { create(:plan, name: 'plan1') } + let_it_be(:plan2) { create(:plan, name: 'plan2') } + + describe '#execute' do + context 'with no params' do + it 'returns all plans' do + found = described_class.new.execute + + expect(found).to match_array([plan1, plan2]) + end + end + + context 'with missing name in params' do + before do + @params = { title: 'plan2' } + end + + it 'returns all plans' do + found = described_class.new(@params).execute + + expect(found).to match_array([plan1, plan2]) + end + end + + context 'with existing name in params' do + before do + @params = { name: 'plan2' } + end + + it 'returns the plan' do + found = described_class.new(@params).execute + + expect(found).to match(plan2) + end + end + + context 'with non-existing name in params' do + before do + @params = { name: 'non-existing-plan' } + end + + it 'returns nil' do + found = described_class.new(@params).execute + + expect(found).to be_nil + end + end + end +end |