From af7860521f7d776e879f2cc0925937b3c7681805 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 19 Oct 2016 13:51:35 +0200 Subject: Fix all specs --- features/steps/shared/builds.rb | 2 ++ spec/features/commits_spec.rb | 4 ++++ .../merge_requests/merge_when_build_succeeds_spec.rb | 5 ++++- spec/features/projects/badges/coverage_spec.rb | 4 ++++ spec/features/projects/builds_spec.rb | 1 + spec/features/projects/pipelines_spec.rb | 1 + spec/lib/gitlab/badge/build/status_spec.rb | 4 ++++ spec/lib/gitlab/badge/coverage/report_spec.rb | 4 ++++ spec/mailers/emails/builds_spec.rb | 4 ++++ spec/models/build_spec.rb | 4 ++++ spec/models/ci/pipeline_spec.rb | 8 ++++++++ spec/models/project_services/hipchat_service_spec.rb | 2 ++ spec/requests/api/builds_spec.rb | 4 ++++ spec/requests/api/commit_statuses_spec.rb | 4 ++++ spec/requests/api/pipelines_spec.rb | 4 ++++ spec/requests/api/triggers_spec.rb | 4 ++++ spec/requests/ci/api/builds_spec.rb | 4 ++++ spec/requests/ci/api/triggers_spec.rb | 4 ++++ spec/services/ci/create_pipeline_service_spec.rb | 1 + spec/services/ci/create_trigger_request_service_spec.rb | 1 + spec/services/ci/image_for_build_service_spec.rb | 4 ++++ spec/services/ci/process_pipeline_service_spec.rb | 1 + spec/services/ci/register_build_service_spec.rb | 1 + spec/services/create_deployment_service_spec.rb | 4 ++++ .../merge_requests/merge_when_build_succeeds_service_spec.rb | 6 ++++-- spec/support/stub_gitlab_calls.rb | 12 ++++++++++++ spec/views/projects/builds/show.html.haml_spec.rb | 2 ++ spec/workers/build_email_worker_spec.rb | 1 + spec/workers/post_receive_spec.rb | 1 + spec/workers/stuck_ci_builds_worker_spec.rb | 4 ++++ 30 files changed, 102 insertions(+), 3 deletions(-) diff --git a/features/steps/shared/builds.rb b/features/steps/shared/builds.rb index 70e6d4836b2..13bf18a8b01 100644 --- a/features/steps/shared/builds.rb +++ b/features/steps/shared/builds.rb @@ -15,10 +15,12 @@ module SharedBuilds end step 'recent build is successful' do + allow(PipelineHooksWorker).to receive(:perform_async).and_return(true) @build.success end step 'recent build failed' do + allow(PipelineHooksWorker).to receive(:perform_async).and_return(true) @build.drop end diff --git a/spec/features/commits_spec.rb b/spec/features/commits_spec.rb index 5910803df51..4ee62aa7703 100644 --- a/spec/features/commits_spec.rb +++ b/spec/features/commits_spec.rb @@ -42,6 +42,10 @@ describe 'Commits' do let!(:build) { FactoryGirl.create :ci_build, pipeline: pipeline } let(:artifacts_file) { fixture_file_upload(Rails.root + 'spec/fixtures/banana_sample.gif', 'image/gif') } + before do + stub_ci_pipeline_hooks + end + context 'when logged as developer' do before do project.team << [@user, :developer] diff --git a/spec/features/merge_requests/merge_when_build_succeeds_spec.rb b/spec/features/merge_requests/merge_when_build_succeeds_spec.rb index bc2b0ff3e2c..0a18bb04a4e 100644 --- a/spec/features/merge_requests/merge_when_build_succeeds_spec.rb +++ b/spec/features/merge_requests/merge_when_build_succeeds_spec.rb @@ -84,7 +84,10 @@ feature 'Merge When Build Succeeds', feature: true, js: true do end context 'when build succeeds' do - background { build.success } + background do + stub_repository_forbidden_access + build.success + end it 'merges merge request' do visit_merge_request(merge_request) # refresh the page diff --git a/spec/features/projects/badges/coverage_spec.rb b/spec/features/projects/badges/coverage_spec.rb index 01a95bf49ac..c9e73d9359d 100644 --- a/spec/features/projects/badges/coverage_spec.rb +++ b/spec/features/projects/badges/coverage_spec.rb @@ -4,6 +4,10 @@ feature 'test coverage badge' do given!(:user) { create(:user) } given!(:project) { create(:project, :private) } + before do + stub_ci_pipeline_hooks + end + context 'when user has access to view badge' do background do project.team << [user, :developer] diff --git a/spec/features/projects/builds_spec.rb b/spec/features/projects/builds_spec.rb index d1685f95503..596ef3852a3 100644 --- a/spec/features/projects/builds_spec.rb +++ b/spec/features/projects/builds_spec.rb @@ -5,6 +5,7 @@ describe "Builds" do let(:artifacts_file) { fixture_file_upload(Rails.root + 'spec/fixtures/banana_sample.gif', 'image/gif') } before do + stub_ci_pipeline_hooks login_as(:user) @commit = FactoryGirl.create :ci_pipeline @build = FactoryGirl.create :ci_build, :trace, pipeline: @commit diff --git a/spec/features/projects/pipelines_spec.rb b/spec/features/projects/pipelines_spec.rb index db56a50e058..6c0bfb87950 100644 --- a/spec/features/projects/pipelines_spec.rb +++ b/spec/features/projects/pipelines_spec.rb @@ -9,6 +9,7 @@ describe "Pipelines" do before do login_as(user) project.team << [user, :developer] + stub_ci_pipeline_hooks end describe 'GET /:project/pipelines' do diff --git a/spec/lib/gitlab/badge/build/status_spec.rb b/spec/lib/gitlab/badge/build/status_spec.rb index 38eebb2a176..d2294fb0632 100644 --- a/spec/lib/gitlab/badge/build/status_spec.rb +++ b/spec/lib/gitlab/badge/build/status_spec.rb @@ -6,6 +6,10 @@ describe Gitlab::Badge::Build::Status do let(:branch) { 'master' } let(:badge) { described_class.new(project, branch) } + before do + stub_ci_pipeline_hooks + end + describe '#entity' do it 'always says build' do expect(badge.entity).to eq 'build' diff --git a/spec/lib/gitlab/badge/coverage/report_spec.rb b/spec/lib/gitlab/badge/coverage/report_spec.rb index 1547bd3228c..52bf0b1c02f 100644 --- a/spec/lib/gitlab/badge/coverage/report_spec.rb +++ b/spec/lib/gitlab/badge/coverage/report_spec.rb @@ -8,6 +8,10 @@ describe Gitlab::Badge::Coverage::Report do described_class.new(project, 'master', job_name) end + before do + stub_ci_pipeline_hooks + end + describe '#entity' do it 'describes a coverage' do expect(badge.entity).to eq 'coverage' diff --git a/spec/mailers/emails/builds_spec.rb b/spec/mailers/emails/builds_spec.rb index 0df89938e97..27bafc05508 100644 --- a/spec/mailers/emails/builds_spec.rb +++ b/spec/mailers/emails/builds_spec.rb @@ -7,6 +7,10 @@ describe Notify do include_context 'gitlab email notification' + before do + stub_ci_pipeline_hooks + end + describe 'build notification email' do let(:build) { create(:ci_build) } let(:project) { build.project } diff --git a/spec/models/build_spec.rb b/spec/models/build_spec.rb index ae185de9ca3..138cd7c5aa4 100644 --- a/spec/models/build_spec.rb +++ b/spec/models/build_spec.rb @@ -16,6 +16,10 @@ describe Ci::Build, models: true do it { is_expected.to respond_to :trace_html } + before do + stub_ci_pipeline_hooks + end + describe '#first_pending' do let!(:first) { create(:ci_build, pipeline: pipeline, status: 'pending', created_at: Date.yesterday) } let!(:second) { create(:ci_build, pipeline: pipeline, status: 'pending') } diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb index 43397c5ae39..1364db42d9f 100644 --- a/spec/models/ci/pipeline_spec.rb +++ b/spec/models/ci/pipeline_spec.rb @@ -20,6 +20,10 @@ describe Ci::Pipeline, models: true do it { is_expected.to delegate_method(:stages).to(:statuses) } + before do + stub_ci_pipeline_hooks + end + describe '#valid_commit_sha' do context 'commit.sha can not start with 00000000' do before do @@ -425,6 +429,10 @@ describe Ci::Pipeline, models: true do before do WebMock.stub_request(:post, hook.url) + + stub_repository_forbidden_access + + allow(PipelineHooksWorker).to receive(:perform_async).and_call_original end context 'with multiple builds' do diff --git a/spec/models/project_services/hipchat_service_spec.rb b/spec/models/project_services/hipchat_service_spec.rb index 26dd95bdfec..15c8ca3e556 100644 --- a/spec/models/project_services/hipchat_service_spec.rb +++ b/spec/models/project_services/hipchat_service_spec.rb @@ -41,6 +41,8 @@ describe HipchatService, models: true do token: token ) WebMock.stub_request(:post, api_url) + + stub_repository_forbidden_access end it 'tests and return errors' do diff --git a/spec/requests/api/builds_spec.rb b/spec/requests/api/builds_spec.rb index 95c7bbf99c9..d1a86ac5a95 100644 --- a/spec/requests/api/builds_spec.rb +++ b/spec/requests/api/builds_spec.rb @@ -12,6 +12,10 @@ describe API::API, api: true do let!(:pipeline) { create(:ci_empty_pipeline, project: project, sha: project.commit.id, ref: project.default_branch) } let!(:build) { create(:ci_build, pipeline: pipeline) } + before do + stub_ci_pipeline_hooks + end + describe 'GET /projects/:id/builds ' do let(:query) { '' } diff --git a/spec/requests/api/commit_statuses_spec.rb b/spec/requests/api/commit_statuses_spec.rb index 7aa7e85a9e2..fe5007215a1 100644 --- a/spec/requests/api/commit_statuses_spec.rb +++ b/spec/requests/api/commit_statuses_spec.rb @@ -11,6 +11,10 @@ describe API::CommitStatuses, api: true do let(:developer) { create_user(:developer) } let(:sha) { commit.id } + before do + stub_ci_pipeline_hooks + end + describe "GET /projects/:id/repository/commits/:sha/statuses" do let(:get_url) { "/projects/#{project.id}/repository/commits/#{sha}/statuses" } diff --git a/spec/requests/api/pipelines_spec.rb b/spec/requests/api/pipelines_spec.rb index 7011bdc9ec0..bb62b96952f 100644 --- a/spec/requests/api/pipelines_spec.rb +++ b/spec/requests/api/pipelines_spec.rb @@ -108,6 +108,10 @@ describe API::API, api: true do let!(:build) { create(:ci_build, :running, pipeline: pipeline) } + before do + stub_ci_pipeline_hooks + end + context 'authorized user' do it 'retries failed builds' do post api("/projects/#{project.id}/pipelines/#{pipeline.id}/cancel", user) diff --git a/spec/requests/api/triggers_spec.rb b/spec/requests/api/triggers_spec.rb index 82bba1ce8a4..a9fc8148e9b 100644 --- a/spec/requests/api/triggers_spec.rb +++ b/spec/requests/api/triggers_spec.rb @@ -14,6 +14,10 @@ describe API::API do let!(:trigger2) { create(:ci_trigger, project: project, token: trigger_token_2) } let!(:trigger_request) { create(:ci_trigger_request, trigger: trigger, created_at: '2015-01-01 12:13:14') } + before do + stub_ci_pipeline_hooks + end + describe 'POST /projects/:project_id/trigger' do let!(:project2) { create(:empty_project) } let(:options) do diff --git a/spec/requests/ci/api/builds_spec.rb b/spec/requests/ci/api/builds_spec.rb index 7b7d62feb2c..0344549072b 100644 --- a/spec/requests/ci/api/builds_spec.rb +++ b/spec/requests/ci/api/builds_spec.rb @@ -6,6 +6,10 @@ describe Ci::API::API do let(:runner) { FactoryGirl.create(:ci_runner, tag_list: ["mysql", "ruby"]) } let(:project) { FactoryGirl.create(:empty_project) } + before do + stub_ci_pipeline_hooks + end + describe "Builds API for runners" do let(:pipeline) { create(:ci_pipeline_without_jobs, project: project, ref: 'master') } diff --git a/spec/requests/ci/api/triggers_spec.rb b/spec/requests/ci/api/triggers_spec.rb index 0a0f979f57d..374313ba2be 100644 --- a/spec/requests/ci/api/triggers_spec.rb +++ b/spec/requests/ci/api/triggers_spec.rb @@ -38,6 +38,10 @@ describe Ci::API::API do context 'Have a commit' do let(:pipeline) { project.pipelines.last } + before do + stub_ci_pipeline_hooks + end + it 'creates builds' do post ci_api("/projects/#{project.ci_id}/refs/master/trigger"), options expect(response).to have_http_status(201) diff --git a/spec/services/ci/create_pipeline_service_spec.rb b/spec/services/ci/create_pipeline_service_spec.rb index 4aadd009f3e..59ea0517b5a 100644 --- a/spec/services/ci/create_pipeline_service_spec.rb +++ b/spec/services/ci/create_pipeline_service_spec.rb @@ -6,6 +6,7 @@ describe Ci::CreatePipelineService, services: true do before do stub_ci_pipeline_to_return_yaml_file + stub_ci_pipeline_hooks end describe '#execute' do diff --git a/spec/services/ci/create_trigger_request_service_spec.rb b/spec/services/ci/create_trigger_request_service_spec.rb index d8c443d29d5..60657ee5cda 100644 --- a/spec/services/ci/create_trigger_request_service_spec.rb +++ b/spec/services/ci/create_trigger_request_service_spec.rb @@ -7,6 +7,7 @@ describe Ci::CreateTriggerRequestService, services: true do before do stub_ci_pipeline_to_return_yaml_file + stub_ci_pipeline_hooks end describe '#execute' do diff --git a/spec/services/ci/image_for_build_service_spec.rb b/spec/services/ci/image_for_build_service_spec.rb index b3e0a7b9b58..0a50347a7c5 100644 --- a/spec/services/ci/image_for_build_service_spec.rb +++ b/spec/services/ci/image_for_build_service_spec.rb @@ -8,6 +8,10 @@ module Ci let(:pipeline) { project.ensure_pipeline('master', commit_sha) } let(:build) { FactoryGirl.create(:ci_build, pipeline: pipeline) } + before do + stub_ci_pipeline_hooks + end + describe '#execute' do before { build } diff --git a/spec/services/ci/process_pipeline_service_spec.rb b/spec/services/ci/process_pipeline_service_spec.rb index ff113efd916..b62c6a9321f 100644 --- a/spec/services/ci/process_pipeline_service_spec.rb +++ b/spec/services/ci/process_pipeline_service_spec.rb @@ -7,6 +7,7 @@ describe Ci::ProcessPipelineService, services: true do before do allow(pipeline).to receive(:ci_yaml_file).and_return(config) + stub_ci_pipeline_hooks end describe '#execute' do diff --git a/spec/services/ci/register_build_service_spec.rb b/spec/services/ci/register_build_service_spec.rb index 1e21a32a062..49033e548c8 100644 --- a/spec/services/ci/register_build_service_spec.rb +++ b/spec/services/ci/register_build_service_spec.rb @@ -11,6 +11,7 @@ module Ci before do specific_runner.assign_to(project) + stub_ci_pipeline_hooks end describe '#execute' do diff --git a/spec/services/create_deployment_service_spec.rb b/spec/services/create_deployment_service_spec.rb index 0b84c7262c3..794067f5220 100644 --- a/spec/services/create_deployment_service_spec.rb +++ b/spec/services/create_deployment_service_spec.rb @@ -6,6 +6,10 @@ describe CreateDeploymentService, services: true do let(:service) { described_class.new(project, user, params) } + before do + stub_ci_pipeline_hooks + end + describe '#execute' do let(:params) do { environment: 'production', diff --git a/spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb b/spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb index b80cfd8f450..17b1db93d04 100644 --- a/spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb +++ b/spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb @@ -141,17 +141,19 @@ describe MergeRequests::MergeWhenBuildSucceedsService do allow_any_instance_of(MergeRequest).to receive(:pipeline).and_wrap_original do Ci::Pipeline.find(pipeline.id) end + + stub_ci_pipeline_hooks end it "doesn't merge if any of stages failed" do - expect(MergeWorker).not_to receive(:perform_async) + expect(PipelineSuccessWorker).not_to receive(:perform_async) build.success test.drop end it 'merges when all stages succeeded' do - expect(MergeWorker).to receive(:perform_async) + expect(PipelineSuccessWorker).to receive(:perform_async).and_return(true) build.success test.success diff --git a/spec/support/stub_gitlab_calls.rb b/spec/support/stub_gitlab_calls.rb index 93f96cacc00..74aa60c283b 100644 --- a/spec/support/stub_gitlab_calls.rb +++ b/spec/support/stub_gitlab_calls.rb @@ -13,6 +13,18 @@ module StubGitlabCalls allow_any_instance_of(Network).to receive(:projects) { project_hash_array } end + def stub_ci_pipeline_hooks + allow(PipelineHooksWorker).to receive(:perform_async).and_return(true) + end + + def stub_ci_build_hooks + allow(BuildHooksWorker).to receive(:perform_async).and_return(true) + end + + def stub_repository_forbidden_access + allow(Repository).to receive(:is_access_forbidden?).and_return(false) + end + def stub_ci_pipeline_to_return_yaml_file stub_ci_pipeline_yaml_file(gitlab_ci_yaml) end diff --git a/spec/views/projects/builds/show.html.haml_spec.rb b/spec/views/projects/builds/show.html.haml_spec.rb index da43622d3f9..929d4023890 100644 --- a/spec/views/projects/builds/show.html.haml_spec.rb +++ b/spec/views/projects/builds/show.html.haml_spec.rb @@ -15,6 +15,8 @@ describe 'projects/builds/show' do assign(:project, project) allow(view).to receive(:can?).and_return(true) + + stub_ci_pipeline_hooks end context 'when build is running' do diff --git a/spec/workers/build_email_worker_spec.rb b/spec/workers/build_email_worker_spec.rb index 788b92c1b84..ee27be35384 100644 --- a/spec/workers/build_email_worker_spec.rb +++ b/spec/workers/build_email_worker_spec.rb @@ -10,6 +10,7 @@ describe BuildEmailWorker do subject { BuildEmailWorker.new } before do + stub_ci_pipeline_hooks allow(build).to receive(:execute_hooks).and_return(false) build.success end diff --git a/spec/workers/post_receive_spec.rb b/spec/workers/post_receive_spec.rb index 984acdade36..d800248d534 100644 --- a/spec/workers/post_receive_spec.rb +++ b/spec/workers/post_receive_spec.rb @@ -59,6 +59,7 @@ describe PostReceive do end allow_any_instance_of(Ci::CreatePipelineService).to receive(:branch?).and_return(true) stub_ci_pipeline_to_return_yaml_file + stub_ci_pipeline_hooks end it { expect{ subject }.to change{ Ci::Pipeline.count }.by(2) } diff --git a/spec/workers/stuck_ci_builds_worker_spec.rb b/spec/workers/stuck_ci_builds_worker_spec.rb index 801fa31b45d..930da4c220a 100644 --- a/spec/workers/stuck_ci_builds_worker_spec.rb +++ b/spec/workers/stuck_ci_builds_worker_spec.rb @@ -4,6 +4,10 @@ describe StuckCiBuildsWorker do let!(:build) { create :ci_build } let(:worker) { described_class.new } + before do + stub_ci_pipeline_hooks + end + subject do build.reload build.status -- cgit v1.2.3