diff options
Diffstat (limited to 'spec/lib/gitlab/ci/pipeline/seed/build_spec.rb')
-rw-r--r-- | spec/lib/gitlab/ci/pipeline/seed/build_spec.rb | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/spec/lib/gitlab/ci/pipeline/seed/build_spec.rb b/spec/lib/gitlab/ci/pipeline/seed/build_spec.rb index 2f9fcd7caac..49505d397c2 100644 --- a/spec/lib/gitlab/ci/pipeline/seed/build_spec.rb +++ b/spec/lib/gitlab/ci/pipeline/seed/build_spec.rb @@ -411,171 +411,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Seed::Build do describe '#to_resource' do subject { seed_build.to_resource } - before do - stub_feature_flags(create_deployment_in_separate_transaction: false) - end - - context 'when job is Ci::Build' do - it { is_expected.to be_a(::Ci::Build) } - it { is_expected.to be_valid } - - shared_examples_for 'deployment job' do - it 'returns a job with deployment' do - expect { subject }.to change { Environment.count }.by(1) - - expect(subject.deployment).not_to be_nil - expect(subject.deployment.deployable).to eq(subject) - expect(subject.deployment.environment.name).to eq(expected_environment_name) - end - end - - shared_examples_for 'non-deployment job' do - it 'returns a job without deployment' do - expect(subject.deployment).to be_nil - end - end - - shared_examples_for 'ensures environment existence' do - it 'has environment' do - expect { subject }.to change { Environment.count }.by(1) - - expect(subject).to be_has_environment - expect(subject.environment).to eq(environment_name) - expect(subject.metadata.expanded_environment_name).to eq(expected_environment_name) - expect(Environment.exists?(name: expected_environment_name)).to eq(true) - end - end - - shared_examples_for 'ensures environment inexistence' do - it 'does not have environment' do - expect { subject }.not_to change { Environment.count } - - expect(subject).not_to be_has_environment - expect(subject.environment).to be_nil - expect(subject.metadata&.expanded_environment_name).to be_nil - expect(Environment.exists?(name: expected_environment_name)).to eq(false) - end - end - - context 'when job deploys to production' do - let(:environment_name) { 'production' } - let(:expected_environment_name) { 'production' } - let(:attributes) { { name: 'deploy', ref: 'master', environment: 'production' } } - - it_behaves_like 'deployment job' - it_behaves_like 'ensures environment existence' - - context 'when create_deployment_in_separate_transaction feature flag is enabled' do - before do - stub_feature_flags(create_deployment_in_separate_transaction: true) - end - - it 'does not create any deployments nor environments' do - expect(subject.deployment).to be_nil - expect(Environment.count).to eq(0) - expect(Deployment.count).to eq(0) - end - end - - context 'when the environment name is invalid' do - let(:attributes) { { name: 'deploy', ref: 'master', environment: '!!!' } } - - it 'fails the job with a failure reason and does not create an environment' do - expect(subject).to be_failed - expect(subject).to be_environment_creation_failure - expect(subject.metadata.expanded_environment_name).to be_nil - expect(Environment.exists?(name: expected_environment_name)).to eq(false) - end - end - end - - context 'when job starts a review app' do - let(:environment_name) { 'review/$CI_COMMIT_REF_NAME' } - let(:expected_environment_name) { "review/#{pipeline.ref}" } - - let(:attributes) do - { - name: 'deploy', ref: 'master', environment: environment_name, - options: { environment: { name: environment_name } } - } - end - - it_behaves_like 'deployment job' - it_behaves_like 'ensures environment existence' - end - - context 'when job stops a review app' do - let(:environment_name) { 'review/$CI_COMMIT_REF_NAME' } - let(:expected_environment_name) { "review/#{pipeline.ref}" } - - let(:attributes) do - { - name: 'deploy', ref: 'master', environment: environment_name, - options: { environment: { name: environment_name, action: 'stop' } } - } - end - - it 'returns a job without deployment' do - expect(subject.deployment).to be_nil - end - - it_behaves_like 'non-deployment job' - it_behaves_like 'ensures environment existence' - end - - context 'when job belongs to a resource group' do - let(:resource_group) { 'iOS' } - let(:attributes) { { name: 'rspec', ref: 'master', resource_group_key: resource_group, environment: 'production' }} - - it 'returns a job with resource group' do - expect(subject.resource_group).not_to be_nil - expect(subject.resource_group.key).to eq('iOS') - expect(Ci::ResourceGroup.count).to eq(1) - end - - context 'when create_deployment_in_separate_transaction feature flag is enabled' do - before do - stub_feature_flags(create_deployment_in_separate_transaction: true) - end - - it 'does not create any resource groups' do - expect(subject.resource_group).to be_nil - expect(Ci::ResourceGroup.count).to eq(0) - end - end - - context 'when resource group has $CI_ENVIRONMENT_NAME in it' do - let(:resource_group) { 'test/$CI_ENVIRONMENT_NAME' } - - it 'expands environment name' do - expect(subject.resource_group.key).to eq('test/production') - end - end - end - end - - context 'when job is a bridge' do - let(:base_attributes) do - { - name: 'rspec', ref: 'master', options: { trigger: 'my/project' }, scheduling_type: :stage - } - end - - let(:attributes) { base_attributes } - - it { is_expected.to be_a(::Ci::Bridge) } - it { is_expected.to be_valid } - - context 'when job belongs to a resource group' do - let(:attributes) { base_attributes.merge(resource_group_key: 'iOS') } - - it 'returns a job with resource group' do - expect(subject.resource_group).not_to be_nil - expect(subject.resource_group.key).to eq('iOS') - end - end - end - it 'memoizes a resource object' do expect(subject.object_id).to eq seed_build.to_resource.object_id end |