summaryrefslogtreecommitdiff
path: root/spec/lib/api/helpers/variables_helpers_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/api/helpers/variables_helpers_spec.rb')
-rw-r--r--spec/lib/api/helpers/variables_helpers_spec.rb43
1 files changed, 43 insertions, 0 deletions
diff --git a/spec/lib/api/helpers/variables_helpers_spec.rb b/spec/lib/api/helpers/variables_helpers_spec.rb
new file mode 100644
index 00000000000..de6bebaa827
--- /dev/null
+++ b/spec/lib/api/helpers/variables_helpers_spec.rb
@@ -0,0 +1,43 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe API::Helpers::VariablesHelpers do
+ let(:helper) { Class.new.include(described_class).new }
+
+ describe '#filter_variable_parameters' do
+ let(:project) { double }
+ let(:params) { double }
+
+ subject { helper.filter_variable_parameters(project, params) }
+
+ it 'returns unmodified params (overridden in EE)' do
+ expect(subject).to eq(params)
+ end
+ end
+
+ describe '#find_variable' do
+ let(:owner) { double }
+ let(:params) { double }
+ let(:variables) { [double] }
+
+ subject { helper.find_variable(owner, params) }
+
+ before do
+ expect(Ci::VariablesFinder).to receive(:new).with(owner, params)
+ .and_return(double(execute: variables))
+ end
+
+ it { is_expected.to eq(variables.first) }
+
+ context 'there are multiple variables with the supplied key' do
+ let(:variables) { [double, double] }
+
+ it 'raises a conflict!' do
+ expect(helper).to receive(:conflict!).with(/There are multiple variables with provided parameters/)
+
+ subject
+ end
+ end
+ end
+end