diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-07-18 03:09:34 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-07-18 03:09:34 +0300 |
commit | ccefff8087799bc076737ad080f18cf98e6fe114 (patch) | |
tree | 452ebc93942fd48d58e57ea57f8bdaaa93ab5b90 /spec | |
parent | 1d84a028b42a1a3aed36a0f3a6cae970c8df8e69 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r-- | spec/frontend/blob/pipeline_tour_success_modal_spec.js | 7 | ||||
-rw-r--r-- | spec/lib/api/helpers/merge_requests_helpers_spec.rb | 63 | ||||
-rw-r--r-- | spec/models/ci/job_artifact_spec.rb | 64 | ||||
-rw-r--r-- | spec/requests/api/ci/runner_spec.rb | 20 | ||||
-rw-r--r-- | spec/requests/api/merge_requests_spec.rb | 10 |
5 files changed, 107 insertions, 57 deletions
diff --git a/spec/frontend/blob/pipeline_tour_success_modal_spec.js b/spec/frontend/blob/pipeline_tour_success_modal_spec.js index 6d4e5e46cb8..41c64f76e61 100644 --- a/spec/frontend/blob/pipeline_tour_success_modal_spec.js +++ b/spec/frontend/blob/pipeline_tour_success_modal_spec.js @@ -1,7 +1,7 @@ import pipelineTourSuccess from '~/blob/pipeline_tour_success_modal.vue'; import { shallowMount } from '@vue/test-utils'; import Cookies from 'js-cookie'; -import { GlSprintf, GlModal } from '@gitlab/ui'; +import { GlSprintf, GlModal, GlLink } from '@gitlab/ui'; import { mockTracking, triggerEvent, unmockTracking } from 'helpers/tracking_helper'; import modalProps from './pipeline_tour_success_mock_data'; @@ -18,6 +18,7 @@ describe('PipelineTourSuccessModal', () => { propsData: modalProps, stubs: { GlModal, + GlSprintf, }, }); @@ -37,6 +38,10 @@ describe('PipelineTourSuccessModal', () => { expect(sprintf.exists()).toBe(true); }); + it('renders the link for codeQualityLink', () => { + expect(wrapper.find(GlLink).attributes('href')).toBe(wrapper.vm.$options.codeQualityLink); + }); + it('calls to remove cookie', () => { wrapper.vm.disableModalFromRenderingAgain(); diff --git a/spec/lib/api/helpers/merge_requests_helpers_spec.rb b/spec/lib/api/helpers/merge_requests_helpers_spec.rb new file mode 100644 index 00000000000..1d68b7985f1 --- /dev/null +++ b/spec/lib/api/helpers/merge_requests_helpers_spec.rb @@ -0,0 +1,63 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe API::Helpers::MergeRequestsHelpers do + describe '#handle_merge_request_errors!' do + let(:helper) do + Class.new do + include API::Helpers::MergeRequestsHelpers + end.new + end + + let(:merge_request) { double } + + context 'when merge request is valid' do + it 'returns nil' do + allow(merge_request).to receive(:valid?).and_return(true) + + expect(merge_request).not_to receive(:errors) + + helper.handle_merge_request_errors!(merge_request) + end + end + + context 'when merge request is invalid' do + before do + allow(merge_request).to receive(:valid?).and_return(false) + allow(helper).to receive_messages([ + :unprocessable_entity!, :conflict!, :render_validation_error! + ]) + end + + API::Helpers::MergeRequestsHelpers::UNPROCESSABLE_ERROR_KEYS.each do |error_key| + it "responds to a #{error_key} error with unprocessable_entity" do + error = double + allow(merge_request).to receive(:errors).and_return({ error_key => error }) + + expect(helper).to receive(:unprocessable_entity!).with(error) + + helper.handle_merge_request_errors!(merge_request) + end + end + + it 'responds to a validate_branches error with conflict' do + error = double + allow(merge_request).to receive(:errors).and_return({ validate_branches: error }) + + expect(helper).to receive(:conflict!).with(error) + + helper.handle_merge_request_errors!(merge_request) + end + + it 'responds with bad request' do + error = double + allow(merge_request).to receive(:errors).and_return({ other_error: error }) + + expect(helper).to receive(:render_validation_error!).with(merge_request) + + helper.handle_merge_request_errors!(merge_request) + end + end + end +end diff --git a/spec/models/ci/job_artifact_spec.rb b/spec/models/ci/job_artifact_spec.rb index b5f9128b7c5..9445ddfcd9d 100644 --- a/spec/models/ci/job_artifact_spec.rb +++ b/spec/models/ci/job_artifact_spec.rb @@ -529,11 +529,9 @@ RSpec.describe Ci::JobArtifact do context 'when file type is supported' do let(:project_closest_setting) { 1024 } let(:artifact_type) { 'junit' } + let(:limit_name) { "#{described_class::PLAN_LIMIT_PREFIX}#{artifact_type}" } - before do - stub_feature_flags(ci_max_artifact_size_per_type: flag_enabled) - allow(build.project).to receive(:closest_setting).with(:max_artifacts_size).and_return(project_closest_setting) - end + let!(:plan_limits) { create(:plan_limits, :default_plan) } shared_examples_for 'basing off the project closest setting' do it { is_expected.to eq(project_closest_setting.megabytes.to_i) } @@ -543,49 +541,40 @@ RSpec.describe Ci::JobArtifact do it { is_expected.to eq(max_size_for_type.megabytes.to_i) } end - context 'and feature flag for custom max size per type is enabled' do - let(:flag_enabled) { true } - let(:limit_name) { "#{described_class::PLAN_LIMIT_PREFIX}#{artifact_type}" } - - let!(:plan_limits) { create(:plan_limits, :default_plan) } + before do + allow(build.project).to receive(:closest_setting).with(:max_artifacts_size).and_return(project_closest_setting) + end - context 'and plan limit is disabled for the given artifact type' do - before do - plan_limits.update!(limit_name => 0) - end + context 'and plan limit is disabled for the given artifact type' do + before do + plan_limits.update!(limit_name => 0) + end - it_behaves_like 'basing off the project closest setting' + it_behaves_like 'basing off the project closest setting' - context 'and project closest setting results to zero' do - let(:project_closest_setting) { 0 } + context 'and project closest setting results to zero' do + let(:project_closest_setting) { 0 } - it { is_expected.to eq(0) } - end + it { is_expected.to eq(0) } end + end - context 'and plan limit is enabled for the given artifact type' do - before do - plan_limits.update!(limit_name => max_size_for_type) - end - - context 'and plan limit is smaller than project setting' do - let(:max_size_for_type) { project_closest_setting - 1 } - - it_behaves_like 'basing off the plan limit' - end + context 'and plan limit is enabled for the given artifact type' do + before do + plan_limits.update!(limit_name => max_size_for_type) + end - context 'and plan limit is smaller than project setting' do - let(:max_size_for_type) { project_closest_setting + 1 } + context 'and plan limit is smaller than project setting' do + let(:max_size_for_type) { project_closest_setting - 1 } - it_behaves_like 'basing off the project closest setting' - end + it_behaves_like 'basing off the plan limit' end - end - context 'and feature flag for custom max size per type is disabled' do - let(:flag_enabled) { false } + context 'and plan limit is larger than project setting' do + let(:max_size_for_type) { project_closest_setting + 1 } - it_behaves_like 'basing off the project closest setting' + it_behaves_like 'basing off the project closest setting' + end end end end @@ -597,7 +586,8 @@ RSpec.describe Ci::JobArtifact do Please refer to https://docs.gitlab.com/ee/development/application_limits.html on how to add new plan limit columns. Take note that while existing max size plan limits default to 0, succeeding new limits are recommended to have - non-zero default values. + non-zero default values. Also, remember to update the plan limits documentation (doc/administration/instance_limits.md) + when changes or new entries are made. MSG end end diff --git a/spec/requests/api/ci/runner_spec.rb b/spec/requests/api/ci/runner_spec.rb index c8718309bf2..41c30ce383a 100644 --- a/spec/requests/api/ci/runner_spec.rb +++ b/spec/requests/api/ci/runner_spec.rb @@ -1632,25 +1632,7 @@ RSpec.describe API::Ci::Runner, :clean_gitlab_redis_shared_state do stub_application_setting(max_artifacts_size: application_max_size) end - context 'and feature flag ci_max_artifact_size_per_type is enabled' do - before do - stub_feature_flags(ci_max_artifact_size_per_type: true) - end - - it_behaves_like 'failed request' - end - - context 'and feature flag ci_max_artifact_size_per_type is disabled' do - before do - stub_feature_flags(ci_max_artifact_size_per_type: false) - end - - it 'bases of project closest setting' do - send_request - - expect(response).to have_gitlab_http_status(success_code) - end - end + it_behaves_like 'failed request' end context 'based on application setting' do diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb index 68f1a0f1ba1..d4c05b4b198 100644 --- a/spec/requests/api/merge_requests_spec.rb +++ b/spec/requests/api/merge_requests_spec.rb @@ -1551,25 +1551,33 @@ RSpec.describe API::MergeRequests do it "returns 422 when source_branch equals target_branch" do post api("/projects/#{project.id}/merge_requests", user), params: { title: "Test merge_request", source_branch: "master", target_branch: "master", author: user } + expect(response).to have_gitlab_http_status(:unprocessable_entity) + expect(json_response['message']).to eq(["You can't use same project/branch for source and target"]) end it "returns 400 when source_branch is missing" do post api("/projects/#{project.id}/merge_requests", user), params: { title: "Test merge_request", target_branch: "master", author: user } + expect(response).to have_gitlab_http_status(:bad_request) + expect(json_response['error']).to eq('source_branch is missing') end it "returns 400 when target_branch is missing" do post api("/projects/#{project.id}/merge_requests", user), params: { title: "Test merge_request", source_branch: "markdown", author: user } + expect(response).to have_gitlab_http_status(:bad_request) + expect(json_response['error']).to eq('target_branch is missing') end it "returns 400 when title is missing" do post api("/projects/#{project.id}/merge_requests", user), params: { target_branch: 'master', source_branch: 'markdown' } + expect(response).to have_gitlab_http_status(:bad_request) + expect(json_response['error']).to eq('title is missing') end context 'with existing MR' do @@ -1594,7 +1602,9 @@ RSpec.describe API::MergeRequests do author: user } end.to change { MergeRequest.count }.by(0) + expect(response).to have_gitlab_http_status(:conflict) + expect(json_response['message']).to eq(["Another open merge request already exists for this source branch: !5"]) end end |