summaryrefslogtreecommitdiff
path: root/spec/services
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-11-08 14:20:58 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-11-08 14:20:58 +0100
commit04a8372cdfff501fe67c17612a0b5e098f7d56c9 (patch)
tree27c3236d137ed4434cff5450d24093cbc3c563e8 /spec/services
parente671cd89956874e05812032400ba2910581f7de1 (diff)
downloadgitlab-ce-04a8372cdfff501fe67c17612a0b5e098f7d56c9.tar.gz
Add environment teardown service
Diffstat (limited to 'spec/services')
-rw-r--r--spec/services/ci/stop_environment_service_spec.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/services/ci/stop_environment_service_spec.rb b/spec/services/ci/stop_environment_service_spec.rb
new file mode 100644
index 00000000000..40b2a028f67
--- /dev/null
+++ b/spec/services/ci/stop_environment_service_spec.rb
@@ -0,0 +1,35 @@
+require 'spec_helper'
+
+describe Ci::StopEnvironmentService, services: true do
+ let(:project) { create(:project) }
+ let(:user) { create(:user) }
+
+ let(:service) { described_class.new(project, user) }
+
+ describe '#execute' do
+ context 'when environment exists' do
+ let(:environment) { create(:environment, project: project) }
+ let(:deployable) { create(:ci_build) }
+
+ let(:stop_build) do
+ create(:ci_build, :manual, name: 'environment/teardown',
+ pipeline: deployable.pipeline)
+ end
+
+ before do
+ create(:deployment, environment: environment,
+ deployable: deployable,
+ on_stop: stop_build.name,
+ user: user,
+ project: project,
+ sha: project.commit.id)
+ end
+
+ it 'stops environment' do
+ expect_any_instance_of(Environment).to receive(:stop!)
+
+ service.execute('master')
+ end
+ end
+ end
+end