diff options
author | Shinya Maeda <shinya@gitlab.com> | 2017-07-07 23:30:27 +0900 |
---|---|---|
committer | Shinya Maeda <shinya@gitlab.com> | 2017-07-08 03:52:34 +0900 |
commit | 928c6b24256fcc3822316e338b00a07b8fce7007 (patch) | |
tree | 49e35909ca31603a806d969811ec5a081e59af54 | |
parent | 87d90b5b5e2fa6d0eed469db61878b942afdbee7 (diff) | |
download | gitlab-ce-fix/sm/rspec-mysql-1-20-build-failed.tar.gz |
Fix spec/models/group_spec.rb(Need to be backported to CE)fix/sm/rspec-mysql-1-20-build-failed
-rw-r--r-- | spec/models/group_spec.rb | 74 |
1 files changed, 35 insertions, 39 deletions
diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb index 399020953e8..2e1734ad7f8 100644 --- a/spec/models/group_spec.rb +++ b/spec/models/group_spec.rb @@ -423,64 +423,60 @@ describe Group, models: true do describe '#secret_variables_for' do let(:project) { create(:empty_project, group: group) } - let!(:secret_variable) do - create(:ci_group_variable, value: 'secret', group: group) - end + context 'when protected and unprotected variables has existsed' do + let!(:secret_variable) do + create(:ci_group_variable, value: 'secret', group: group) + end - let!(:protected_variable) do - create(:ci_group_variable, :protected, value: 'protected', group: group) - end + let!(:protected_variable) do + create(:ci_group_variable, :protected, value: 'protected', group: group) + end - subject { group.secret_variables_for('ref', project) } + subject { group.secret_variables_for('ref', project) } - shared_examples 'ref is protected' do - it 'contains all the variables' do - is_expected.to contain_exactly(secret_variable, protected_variable) + shared_examples 'ref is protected' do + it 'contains all the variables' do + is_expected.to contain_exactly(secret_variable, protected_variable) + end end - end - context 'when the ref is not protected' do - before do - stub_application_setting( - default_branch_protection: Gitlab::Access::PROTECTION_NONE) - end + context 'when the ref is not protected' do + before do + stub_application_setting( + default_branch_protection: Gitlab::Access::PROTECTION_NONE) + end - it 'contains only the secret variables' do - is_expected.to contain_exactly(secret_variable) + it 'contains only the secret variables' do + is_expected.to contain_exactly(secret_variable) + end end - end - context 'when the ref is a protected branch' do - before do - create(:protected_branch, name: 'ref', project: project) + context 'when the ref is a protected branch' do + before do + create(:protected_branch, name: 'ref', project: project) + end + + it_behaves_like 'ref is protected' end - it_behaves_like 'ref is protected' - end + context 'when the ref is a protected tag' do + before do + create(:protected_tag, name: 'ref', project: project) + end - context 'when the ref is a protected tag' do - before do - create(:protected_tag, name: 'ref', project: project) + it_behaves_like 'ref is protected' end - - it_behaves_like 'ref is protected' end context 'when group has children' do + let!(:variable) { create(:ci_group_variable, group: group) } let!(:group_child) { create(:group, parent: group) } let!(:variable_child) { create(:ci_group_variable, group: group_child) } - let!(:group_child_3) { create(:group, parent: group_child_2) } - let!(:variable_child_3) { create(:ci_group_variable, group: group_child_3) } - let!(:group_child_2) { create(:group, parent: group_child) } - let!(:variable_child_2) { create(:ci_group_variable, group: group_child_2) } - it 'returns all variables belong to the group and parent groups' do - expected_array1 = [protected_variable, secret_variable] - expected_array2 = [variable_child, variable_child_2, variable_child_3] - got_array = group_child_3.secret_variables_for('ref', project).to_a + subject { group_child.secret_variables_for('ref', project) } - expect(got_array.shift(2)).to contain_exactly(*expected_array1) - expect(got_array).to eq(expected_array2) + it 'returns all variables belong to the group and parent groups' do + is_expected.to eq([variable, variable_child]) end end end |