diff options
Diffstat (limited to 'spec/services/git/tag_push_service_spec.rb')
-rw-r--r-- | spec/services/git/tag_push_service_spec.rb | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/spec/services/git/tag_push_service_spec.rb b/spec/services/git/tag_push_service_spec.rb index 9688041c08c..87dbf79a245 100644 --- a/spec/services/git/tag_push_service_spec.rb +++ b/spec/services/git/tag_push_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Git::TagPushService do +RSpec.describe Git::TagPushService do include RepoHelpers include GitHelpers @@ -10,9 +10,11 @@ describe Git::TagPushService do let(:project) { create(:project, :repository) } let(:service) { described_class.new(project, user, change: { oldrev: oldrev, newrev: newrev, ref: ref }) } - let(:oldrev) { Gitlab::Git::BLANK_SHA } + let(:blankrev) { Gitlab::Git::BLANK_SHA } + let(:oldrev) { blankrev } let(:newrev) { "8a2a6eb295bb170b34c24c76c49ed0e9b2eaf34b" } # gitlab-test: git rev-parse refs/tags/v1.1.0 - let(:ref) { 'refs/tags/v1.1.0' } + let(:tag) { 'v1.1.0' } + let(:ref) { "refs/tags/#{tag}" } describe "Push tags" do subject do @@ -58,4 +60,35 @@ describe Git::TagPushService do end end end + + describe 'artifacts' do + context 'create tag' do + let(:oldrev) { blankrev } + + it 'does nothing' do + expect(::Ci::RefDeleteUnlockArtifactsWorker).not_to receive(:perform_async) + + service.execute + end + end + + context 'update tag' do + it 'does nothing' do + expect(::Ci::RefDeleteUnlockArtifactsWorker).not_to receive(:perform_async) + + service.execute + end + end + + context 'delete tag' do + let(:newrev) { blankrev } + + it 'unlocks artifacts' do + expect(::Ci::RefDeleteUnlockArtifactsWorker) + .to receive(:perform_async).with(project.id, user.id, "refs/tags/#{tag}") + + service.execute + end + end + end end |