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/services/deployments/create_service_spec.rb')
-rw-r--r--spec/services/deployments/create_service_spec.rb37
1 files changed, 30 insertions, 7 deletions
diff --git a/spec/services/deployments/create_service_spec.rb b/spec/services/deployments/create_service_spec.rb
index 0f2a6ce32e1..f6f4c68a6f1 100644
--- a/spec/services/deployments/create_service_spec.rb
+++ b/spec/services/deployments/create_service_spec.rb
@@ -21,11 +21,34 @@ RSpec.describe Deployments::CreateService do
expect(Deployments::UpdateEnvironmentWorker).to receive(:perform_async)
expect(Deployments::LinkMergeRequestWorker).to receive(:perform_async)
- expect(Deployments::HooksWorker).to receive(:perform_async)
+ expect_next_instance_of(Deployment) do |deployment|
+ expect(deployment).to receive(:execute_hooks)
+ end
expect(service.execute).to be_persisted
end
+ context 'when `deployment_hooks_skip_worker` flag is disabled' do
+ before do
+ stub_feature_flags(deployment_hooks_skip_worker: false)
+ end
+
+ it 'executes Deployments::HooksWorker asynchronously' do
+ service = described_class.new(
+ environment,
+ user,
+ sha: 'b83d6e391c22777fca1ed3012fce84f633d7fed0',
+ ref: 'master',
+ tag: false,
+ status: 'success'
+ )
+
+ expect(Deployments::HooksWorker).to receive(:perform_async)
+
+ service.execute
+ end
+ end
+
it 'does not change the status if no status is given' do
service = described_class.new(
environment,
@@ -37,7 +60,9 @@ RSpec.describe Deployments::CreateService do
expect(Deployments::UpdateEnvironmentWorker).not_to receive(:perform_async)
expect(Deployments::LinkMergeRequestWorker).not_to receive(:perform_async)
- expect(Deployments::HooksWorker).not_to receive(:perform_async)
+ expect_next_instance_of(Deployment) do |deployment|
+ expect(deployment).not_to receive(:execute_hooks)
+ end
expect(service.execute).to be_persisted
end
@@ -55,11 +80,9 @@ RSpec.describe Deployments::CreateService do
it 'does not create a new deployment' do
described_class.new(environment, user, params).execute
- expect(Deployments::UpdateEnvironmentWorker).not_to receive(:perform_async)
- expect(Deployments::LinkMergeRequestWorker).not_to receive(:perform_async)
- expect(Deployments::HooksWorker).not_to receive(:perform_async)
-
- described_class.new(environment.reload, user, params).execute
+ expect do
+ described_class.new(environment.reload, user, params).execute
+ end.not_to change { Deployment.count }
end
end
end