Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/deploy_key_access_spec.rb')
-rw-r--r--spec/lib/gitlab/deploy_key_access_spec.rb26
1 files changed, 23 insertions, 3 deletions
diff --git a/spec/lib/gitlab/deploy_key_access_spec.rb b/spec/lib/gitlab/deploy_key_access_spec.rb
index 83b97c8ba25..e32858cc13f 100644
--- a/spec/lib/gitlab/deploy_key_access_spec.rb
+++ b/spec/lib/gitlab/deploy_key_access_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Gitlab::DeployKeyAccess do
+RSpec.describe Gitlab::DeployKeyAccess, feature_category: :source_code_management do
let_it_be(:user) { create(:user) }
let_it_be(:deploy_key) { create(:deploy_key, user: user) }
@@ -17,10 +17,30 @@ RSpec.describe Gitlab::DeployKeyAccess do
end
describe '#can_create_tag?' do
+ let!(:protected_tag) { create(:protected_tag, :no_one_can_create, project: project, name: 'v*') }
+
+ context 'when no-one can create tag' do
+ it 'returns false' do
+ expect(access.can_create_tag?('v0.1.2')).to be_falsey
+ end
+
+ context 'when deploy_key_for_protected_tags FF is disabled' do
+ before do
+ stub_feature_flags(deploy_key_for_protected_tags: false)
+ end
+
+ it 'allows to push the tag' do
+ expect(access.can_create_tag?('v0.1.2')).to be_truthy
+ end
+ end
+ end
+
context 'push tag that matches a protected tag pattern via a deploy key' do
- it 'still pushes that tag' do
- create(:protected_tag, project: project, name: 'v*')
+ before do
+ create(:protected_tag_create_access_level, protected_tag: protected_tag, deploy_key: deploy_key)
+ end
+ it 'allows to push the tag' do
expect(access.can_create_tag?('v0.1.2')).to be_truthy
end
end