summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/chat_commands/deploy_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/chat_commands/deploy_spec.rb')
-rw-r--r--spec/lib/gitlab/chat_commands/deploy_spec.rb90
1 files changed, 0 insertions, 90 deletions
diff --git a/spec/lib/gitlab/chat_commands/deploy_spec.rb b/spec/lib/gitlab/chat_commands/deploy_spec.rb
deleted file mode 100644
index 46dbdeae37c..00000000000
--- a/spec/lib/gitlab/chat_commands/deploy_spec.rb
+++ /dev/null
@@ -1,90 +0,0 @@
-require 'spec_helper'
-
-describe Gitlab::ChatCommands::Deploy, service: true do
- describe '#execute' do
- let(:project) { create(:empty_project) }
- let(:user) { create(:user) }
- let(:regex_match) { described_class.match('deploy staging to production') }
-
- before do
- # Make it possible to trigger protected manual actions for developers.
- #
- project.add_developer(user)
-
- create(:protected_branch, :developers_can_merge,
- name: 'master', project: project)
- end
-
- subject do
- described_class.new(project, user).execute(regex_match)
- end
-
- context 'if no environment is defined' do
- it 'does not execute an action' do
- expect(subject[:response_type]).to be(:ephemeral)
- expect(subject[:text]).to eq("No action found to be executed")
- end
- end
-
- context 'with environment' do
- let!(:staging) { create(:environment, name: 'staging', project: project) }
- let!(:pipeline) { create(:ci_pipeline, project: project) }
- let!(:build) { create(:ci_build, pipeline: pipeline) }
- let!(:deployment) { create(:deployment, environment: staging, deployable: build) }
-
- context 'without actions' do
- it 'does not execute an action' do
- expect(subject[:response_type]).to be(:ephemeral)
- expect(subject[:text]).to eq("No action found to be executed")
- end
- end
-
- context 'with action' do
- let!(:manual1) do
- create(:ci_build, :manual, pipeline: pipeline,
- name: 'first',
- environment: 'production')
- end
-
- it 'returns success result' do
- expect(subject[:response_type]).to be(:in_channel)
- expect(subject[:text]).to start_with('Deployment started from staging to production')
- end
-
- context 'when duplicate action exists' do
- let!(:manual2) do
- create(:ci_build, :manual, pipeline: pipeline,
- name: 'second',
- environment: 'production')
- end
-
- it 'returns error' do
- expect(subject[:response_type]).to be(:ephemeral)
- expect(subject[:text]).to eq('Too many actions defined')
- end
- end
-
- context 'when teardown action exists' do
- let!(:teardown) do
- create(:ci_build, :manual, :teardown_environment,
- pipeline: pipeline, name: 'teardown', environment: 'production')
- end
-
- it 'returns the success message' do
- expect(subject[:response_type]).to be(:in_channel)
- expect(subject[:text]).to start_with('Deployment started from staging to production')
- end
- end
- end
- end
- end
-
- describe 'self.match' do
- it 'matches the environment' do
- match = described_class.match('deploy staging to production')
-
- expect(match[:from]).to eq('staging')
- expect(match[:to]).to eq('production')
- end
- end
-end