diff options
Diffstat (limited to 'spec/services/deployments/create_service_spec.rb')
-rw-r--r-- | spec/services/deployments/create_service_spec.rb | 37 |
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 |