diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-10-05 12:08:17 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-10-05 12:08:17 +0300 |
commit | 2fe341d705700b3e99f82076b09b95885878ac0d (patch) | |
tree | 0e1775e230ea73b70b226aac8e08b11c2ca3d1ac /spec/services/ci/retry_build_service_spec.rb | |
parent | 34cd22d1a925bd4113e10279bbf98db28adff420 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/services/ci/retry_build_service_spec.rb')
-rw-r--r-- | spec/services/ci/retry_build_service_spec.rb | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/spec/services/ci/retry_build_service_spec.rb b/spec/services/ci/retry_build_service_spec.rb index 4c1e698d52d..32a1b29c71f 100644 --- a/spec/services/ci/retry_build_service_spec.rb +++ b/spec/services/ci/retry_build_service_spec.rb @@ -3,25 +3,32 @@ require 'spec_helper' RSpec.describe Ci::RetryBuildService do - let_it_be(:user) { create(:user) } + let_it_be(:reporter) { create(:user) } + let_it_be(:developer) { create(:user) } let_it_be(:project) { create(:project, :repository) } let_it_be(:pipeline) do create(:ci_pipeline, project: project, sha: 'b83d6e391c22777fca1ed3012fce84f633d7fed0') end - let(:stage) do + let_it_be(:stage) do create(:ci_stage_entity, project: project, pipeline: pipeline, name: 'test') end - let(:build) { create(:ci_build, pipeline: pipeline, stage_id: stage.id) } + let_it_be_with_refind(:build) { create(:ci_build, pipeline: pipeline, stage_id: stage.id) } + let(:user) { developer } let(:service) do described_class.new(project, user) end + before_all do + project.add_developer(developer) + project.add_reporter(reporter) + end + clone_accessors = described_class.clone_accessors reject_accessors = @@ -53,9 +60,9 @@ RSpec.describe Ci::RetryBuildService do pipeline_id report_results pending_state pages_deployments].freeze shared_examples 'build duplication' do - let(:another_pipeline) { create(:ci_empty_pipeline, project: project) } + let_it_be(:another_pipeline) { create(:ci_empty_pipeline, project: project) } - let(:build) do + let_it_be(:build) do create(:ci_build, :failed, :expired, :erased, :queued, :coverage, :tags, :allowed_to_fail, :on_tag, :triggered, :teardown_environment, :resource_group, description: 'my-job', stage: 'test', stage_id: stage.id, @@ -63,7 +70,7 @@ RSpec.describe Ci::RetryBuildService do scheduled_at: 10.seconds.since) end - before do + before_all do # Test correctly behaviour of deprecated artifact because it can be still in use stub_feature_flags(drop_license_management_artifact: false) @@ -81,8 +88,6 @@ RSpec.describe Ci::RetryBuildService do create(:ci_job_variable, job: build) create(:ci_build_need, build: build) - - build.reload end describe 'clone accessors' do @@ -162,8 +167,6 @@ RSpec.describe Ci::RetryBuildService do context 'when user has ability to execute build' do before do stub_not_protect_default_branch - - project.add_developer(user) end it_behaves_like 'build duplication' @@ -235,7 +238,6 @@ RSpec.describe Ci::RetryBuildService do context 'when the pipeline is a child pipeline and the bridge is depended' do let!(:parent_pipeline) { create(:ci_pipeline, project: project) } - let!(:pipeline) { create(:ci_pipeline, project: project) } let!(:bridge) { create(:ci_bridge, :strategy_depend, pipeline: parent_pipeline, status: 'success') } let!(:source_pipeline) { create(:ci_sources_pipeline, pipeline: pipeline, source_job: bridge) } @@ -248,6 +250,8 @@ RSpec.describe Ci::RetryBuildService do end context 'when user does not have ability to execute build' do + let(:user) { reporter } + it 'raises an error' do expect { service.execute(build) } .to raise_error Gitlab::Access::AccessDeniedError @@ -265,8 +269,6 @@ RSpec.describe Ci::RetryBuildService do context 'when user has ability to execute build' do before do stub_not_protect_default_branch - - project.add_developer(user) end it_behaves_like 'build duplication' @@ -316,6 +318,8 @@ RSpec.describe Ci::RetryBuildService do end context 'when user does not have ability to execute build' do + let(:user) { reporter } + it 'raises an error' do expect { service.reprocess!(build) } .to raise_error Gitlab::Access::AccessDeniedError |