40 lines
1 KiB
Ruby
40 lines
1 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'spec_helper'
|
||
|
|
||
|
RSpec.describe Gitlab::Ci::Variables::Builder::Instance do
|
||
|
let_it_be(:variable) { create(:ci_instance_variable, protected: false) }
|
||
|
let_it_be(:protected_variable) { create(:ci_instance_variable, protected: true) }
|
||
|
|
||
|
let(:builder) { described_class.new }
|
||
|
|
||
|
describe '#secret_variables' do
|
||
|
let(:variable_item) { item(variable) }
|
||
|
let(:protected_variable_item) { item(protected_variable) }
|
||
|
|
||
|
subject do
|
||
|
builder.secret_variables(protected_ref: protected_ref)
|
||
|
end
|
||
|
|
||
|
context 'when the ref is protected' do
|
||
|
let(:protected_ref) { true }
|
||
|
|
||
|
it 'contains all the variables' do
|
||
|
is_expected.to contain_exactly(variable_item, protected_variable_item)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'when the ref is not protected' do
|
||
|
let(:protected_ref) { false }
|
||
|
|
||
|
it 'contains only unprotected variables' do
|
||
|
is_expected.to contain_exactly(variable_item)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def item(variable)
|
||
|
Gitlab::Ci::Variables::Collection::Item.fabricate(variable)
|
||
|
end
|
||
|
end
|