diff options
author | Kamil Trzciński <ayufan@ayufan.eu> | 2017-06-21 14:16:08 +0000 |
---|---|---|
committer | Kamil Trzciński <ayufan@ayufan.eu> | 2017-06-21 14:16:08 +0000 |
commit | 6431118d85d4c3cbe108d5fa6edc202bc619b092 (patch) | |
tree | 79a8b19ea436d25a8be06fd2651dbdef1161adb3 /spec/services | |
parent | 411163226841589ed92c97fcab0503d8b77368eb (diff) | |
parent | 2a7f1eec12657310e2f8a24b0a1f0a659b9363d6 (diff) | |
download | gitlab-ce-6431118d85d4c3cbe108d5fa6edc202bc619b092.tar.gz |
Merge branch '34008-fix-CI_ENVIRONMENT_URL-2' into 'master'
Don't expand CI_ENVIRONMENT_URL so runner would do
Closes #34008
See merge request !12344
Diffstat (limited to 'spec/services')
-rw-r--r-- | spec/services/create_deployment_service_spec.rb | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/spec/services/create_deployment_service_spec.rb b/spec/services/create_deployment_service_spec.rb index 6cf4342ad4c..dfab6ebf372 100644 --- a/spec/services/create_deployment_service_spec.rb +++ b/spec/services/create_deployment_service_spec.rb @@ -122,6 +122,61 @@ describe CreateDeploymentService, services: true do end end + describe '#expanded_environment_url' do + subject { service.send(:expanded_environment_url) } + + context 'when yaml environment uses $CI_COMMIT_REF_NAME' do + let(:job) do + create(:ci_build, + ref: 'master', + options: { environment: { url: 'http://review/$CI_COMMIT_REF_NAME' } }) + end + + it { is_expected.to eq('http://review/master') } + end + + context 'when yaml environment uses $CI_ENVIRONMENT_SLUG' do + let(:job) do + create(:ci_build, + ref: 'master', + environment: 'production', + options: { environment: { url: 'http://review/$CI_ENVIRONMENT_SLUG' } }) + end + + let!(:environment) do + create(:environment, + project: job.project, + name: 'production', + slug: 'prod-slug', + external_url: 'http://review/old') + end + + it { is_expected.to eq('http://review/prod-slug') } + end + + context 'when yaml environment uses yaml_variables containing symbol keys' do + let(:job) do + create(:ci_build, + yaml_variables: [{ key: :APP_HOST, value: 'host' }], + options: { environment: { url: 'http://review/$APP_HOST' } }) + end + + it { is_expected.to eq('http://review/host') } + end + + context 'when yaml environment does not have url' do + let(:job) { create(:ci_build, environment: 'staging') } + + let!(:environment) do + create(:environment, project: job.project, name: job.environment) + end + + it 'returns the external_url from persisted environment' do + is_expected.to be_nil + end + end + end + describe 'processing of builds' do shared_examples 'does not create deployment' do it 'does not create a new deployment' do |