summaryrefslogtreecommitdiff
path: root/spec/services/git/tag_push_service_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/git/tag_push_service_spec.rb')
-rw-r--r--spec/services/git/tag_push_service_spec.rb39
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