summaryrefslogtreecommitdiff
path: root/spec/finders/analytics/cycle_analytics/stage_finder_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/finders/analytics/cycle_analytics/stage_finder_spec.rb')
-rw-r--r--spec/finders/analytics/cycle_analytics/stage_finder_spec.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/finders/analytics/cycle_analytics/stage_finder_spec.rb b/spec/finders/analytics/cycle_analytics/stage_finder_spec.rb
new file mode 100644
index 00000000000..0275205028a
--- /dev/null
+++ b/spec/finders/analytics/cycle_analytics/stage_finder_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Analytics::CycleAnalytics::StageFinder do
+ let(:project) { build(:project) }
+
+ let(:stage_id) { { id: Gitlab::Analytics::CycleAnalytics::DefaultStages.names.first } }
+
+ subject { described_class.new(parent: project, stage_id: stage_id[:id]).execute }
+
+ context 'when looking up in-memory default stage by name exists' do
+ it { expect(subject).not_to be_persisted }
+ it { expect(subject.name).to eq(stage_id[:id]) }
+ end
+
+ context 'when in-memory default stage cannot be found' do
+ before do
+ stage_id[:id] = 'unknown_default_stage'
+ end
+
+ it { expect { subject }.to raise_error(ActiveRecord::RecordNotFound) }
+ end
+end