diff options
40 files changed, 619 insertions, 407 deletions
diff --git a/.rubocop.yml b/.rubocop.yml index e43ed140d90..91bad953638 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -349,6 +349,8 @@ RSpec/HaveGitlabHttpStatus: - 'ee/spec/requests/{groups,projects,repositories}/**/*' - 'spec/requests/api/*/**/*.rb' - 'ee/spec/requests/api/*/**/*.rb' + - 'spec/requests/api/[a-f]*.rb' + - 'ee/spec/requests/api/[a-f]*.rb' Style/MultilineWhenThen: Enabled: false diff --git a/app/assets/javascripts/import_projects/components/import_projects_table.vue b/app/assets/javascripts/import_projects/components/import_projects_table.vue index e5ac3cbafe5..849bda28d03 100644 --- a/app/assets/javascripts/import_projects/components/import_projects_table.vue +++ b/app/assets/javascripts/import_projects/components/import_projects_table.vue @@ -1,5 +1,5 @@ <script> -import _ from 'underscore'; +import { throttle } from 'lodash'; import { mapActions, mapState, mapGetters } from 'vuex'; import { GlLoadingIcon } from '@gitlab/ui'; import LoadingButton from '~/vue_shared/components/loading_button.vue'; @@ -67,7 +67,7 @@ export default { this.setFilter(target.value); }, - throttledFetchRepos: _.throttle(function fetch() { + throttledFetchRepos: throttle(function fetch() { eventHub.$off('importAll'); this.fetchRepos(); }, reposFetchThrottleDelay), diff --git a/app/assets/javascripts/notes.js b/app/assets/javascripts/notes.js index b3b189c1114..9e2231922b7 100644 --- a/app/assets/javascripts/notes.js +++ b/app/assets/javascripts/notes.js @@ -1808,11 +1808,7 @@ export default class Notes { $editingNote.removeClass('is-editing fade-in-full').addClass('being-posted fade-in-half'); $editingNote .find('.note-headline-meta a') - .html( - `<i class="fa fa-spinner fa-spin" aria-label="${__( - 'Comment is being updated', - )}" aria-hidden="true"></i>`, - ); + .html('<span class="spinner align-text-bottom"></span>'); // Make request to update comment on server axios @@ -1825,7 +1821,7 @@ export default class Notes { // Submission failed, revert back to original note $noteBodyText.html(escape(cachedNoteBodyText)); $editingNote.removeClass('being-posted fade-in'); - $editingNote.find('.fa.fa-spinner').remove(); + $editingNote.find('.spinner').remove(); // Show Flash message about failure this.updateNoteError(); diff --git a/app/presenters/projects/prometheus/alert_presenter.rb b/app/presenters/projects/prometheus/alert_presenter.rb index 8988c567c5c..7416b76b65d 100644 --- a/app/presenters/projects/prometheus/alert_presenter.rb +++ b/app/presenters/projects/prometheus/alert_presenter.rb @@ -6,6 +6,7 @@ module Projects RESERVED_ANNOTATIONS = %w(gitlab_incident_markdown title).freeze GENERIC_ALERT_SUMMARY_ANNOTATIONS = %w(monitoring_tool service hosts).freeze MARKDOWN_LINE_BREAK = " \n".freeze + INCIDENT_LABEL_NAME = IncidentManagement::CreateIssueService::INCIDENT_LABEL[:title].freeze def full_title [environment_name, alert_title].compact.join(': ') @@ -31,6 +32,18 @@ module Projects end end + def show_performance_dashboard_link? + gitlab_alert.present? + end + + def show_incident_issues_link? + project.incident_management_setting&.create_issue? + end + + def incident_issues_link + project_issues_url(project, label_name: INCIDENT_LABEL_NAME) + end + def starts_at super&.rfc3339 end diff --git a/app/services/concerns/incident_management/settings.rb b/app/services/concerns/incident_management/settings.rb new file mode 100644 index 00000000000..5f56d6e7f53 --- /dev/null +++ b/app/services/concerns/incident_management/settings.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true +module IncidentManagement + module Settings + def incident_management_setting + strong_memoize(:incident_management_setting) do + project.incident_management_setting || + project.build_incident_management_setting + end + end + + def process_issues? + incident_management_setting.create_issue? + end + end +end diff --git a/app/services/issues/close_service.rb b/app/services/issues/close_service.rb index 14585c2850b..ce955b07648 100644 --- a/app/services/issues/close_service.rb +++ b/app/services/issues/close_service.rb @@ -36,6 +36,8 @@ module Issues execute_hooks(issue, 'close') invalidate_cache_counts(issue, users: issue.assignees) issue.update_project_counter_caches + + store_first_mentioned_in_commit_at(issue, closed_via) if closed_via.is_a?(MergeRequest) end issue @@ -46,5 +48,17 @@ module Issues def create_note(issue, current_commit) SystemNoteService.change_status(issue, issue.project, current_user, issue.state, current_commit) end + + def store_first_mentioned_in_commit_at(issue, merge_request) + return unless Feature.enabled?(:store_first_mentioned_in_commit_on_issue_close, issue.project) + + metrics = issue.metrics + return if metrics.nil? || metrics.first_mentioned_in_commit_at + + first_commit_timestamp = merge_request.commits(limit: 1).first&.date + return unless first_commit_timestamp + + metrics.update!(first_mentioned_in_commit_at: first_commit_timestamp) + end end end diff --git a/app/services/projects/alerting/notify_service.rb b/app/services/projects/alerting/notify_service.rb index 4ca3b154e4b..d34d6f6a915 100644 --- a/app/services/projects/alerting/notify_service.rb +++ b/app/services/projects/alerting/notify_service.rb @@ -4,12 +4,14 @@ module Projects module Alerting class NotifyService < BaseService include Gitlab::Utils::StrongMemoize + include IncidentManagement::Settings def execute(token) return forbidden unless alerts_service_activated? return unauthorized unless valid_token?(token) - process_incident_issues + process_incident_issues if process_issues? + send_alert_email if send_email? ServiceResponse.success rescue Gitlab::Alerting::NotificationPayloadParser::BadPayloadError @@ -20,11 +22,21 @@ module Projects delegate :alerts_service, :alerts_service_activated?, to: :project + def send_email? + incident_management_setting.send_email? + end + def process_incident_issues IncidentManagement::ProcessAlertWorker .perform_async(project.id, parsed_payload) end + def send_alert_email + notification_service + .async + .prometheus_alerts_fired(project, [parsed_payload]) + end + def parsed_payload Gitlab::Alerting::NotificationPayloadParser.call(params.to_h) end diff --git a/app/views/dashboard/merge_requests.html.haml b/app/views/dashboard/merge_requests.html.haml index 3956f03a3c8..dd9fd34f284 100644 --- a/app/views/dashboard/merge_requests.html.haml +++ b/app/views/dashboard/merge_requests.html.haml @@ -4,11 +4,11 @@ = render_dashboard_gold_trial(current_user) -.page-title-holder.d-flex.align-items-center +.page-title-holder.d-flex.align-items-start.flex-column.flex-sm-row.align-items-sm-center %h1.page-title= _('Merge Requests') - if current_user - .page-title-controls + .page-title-controls.ml-0.mb-3.ml-sm-auto.mb-sm-0 = render 'shared/new_project_item_select', path: 'merge_requests/new', label: "New merge request", with_feature_enabled: 'merge_requests', type: :merge_requests .top-area diff --git a/changelogs/unreleased/199400-send-email-notifications-for-generic-alerts.yml b/changelogs/unreleased/199400-send-email-notifications-for-generic-alerts.yml new file mode 100644 index 00000000000..dc5e40f42ea --- /dev/null +++ b/changelogs/unreleased/199400-send-email-notifications-for-generic-alerts.yml @@ -0,0 +1,5 @@ +--- +title: Send alert emails for generic incident alerts +merge_request: 24414 +author: +type: added diff --git a/changelogs/unreleased/26556-create-merge-request-button-extends-past-edge-on-mobile.yml b/changelogs/unreleased/26556-create-merge-request-button-extends-past-edge-on-mobile.yml new file mode 100644 index 00000000000..a69384079dd --- /dev/null +++ b/changelogs/unreleased/26556-create-merge-request-button-extends-past-edge-on-mobile.yml @@ -0,0 +1,6 @@ +--- +title: Prevent "Select project to create merge request" button from overflowing out + of the viewport on mobile +merge_request: 25195 +author: +type: fixed diff --git a/changelogs/unreleased/rk4bir-master-patch-60164.yml b/changelogs/unreleased/rk4bir-master-patch-60164.yml new file mode 100644 index 00000000000..e8f5203dad4 --- /dev/null +++ b/changelogs/unreleased/rk4bir-master-patch-60164.yml @@ -0,0 +1,5 @@ +--- +title: Migrated from .fa-spinner to .spinner in 'app/assets/javascripts/notes.js +merge_request: 24916 +author: Raihan Kabir (gitlab/rk4bir) +type: changed diff --git a/doc/development/migration_style_guide.md b/doc/development/migration_style_guide.md index c15e51c2b9d..1570f9e4096 100644 --- a/doc/development/migration_style_guide.md +++ b/doc/development/migration_style_guide.md @@ -424,16 +424,10 @@ Take the following migration as an example: ```ruby class DefaultRequestAccessGroups < ActiveRecord::Migration[5.2] - include Gitlab::Database::MigrationHelpers - DOWNTIME = false - def up - change_column_default :namespaces, :request_access_enabled, true - end - - def down - change_column_default :namespaces, :request_access_enabled, false + def change + change_column_default(:namespaces, :request_access_enabled, from: false, to: true) end end ``` diff --git a/generator_templates/active_record/migration/create_table_migration.rb b/generator_templates/active_record/migration/create_table_migration.rb index 4a6bea2796c..91df1b0d98f 100644 --- a/generator_templates/active_record/migration/create_table_migration.rb +++ b/generator_templates/active_record/migration/create_table_migration.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# See https://docs.gitlab.com/ee/development/migration_style_guide.html # for more information on how to write migrations for GitLab. class <%= migration_class_name %> < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version %>] diff --git a/generator_templates/active_record/migration/migration.rb b/generator_templates/active_record/migration/migration.rb index 44d34674983..2a57edba65e 100644 --- a/generator_templates/active_record/migration/migration.rb +++ b/generator_templates/active_record/migration/migration.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# See https://docs.gitlab.com/ee/development/migration_style_guide.html # for more information on how to write migrations for GitLab. class <%= migration_class_name %> < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version %>] diff --git a/generator_templates/rails/post_deployment_migration/migration.rb b/generator_templates/rails/post_deployment_migration/migration.rb index 6a3ccc1ede8..b36cf877f0e 100644 --- a/generator_templates/rails/post_deployment_migration/migration.rb +++ b/generator_templates/rails/post_deployment_migration/migration.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# See https://docs.gitlab.com/ee/development/migration_style_guide.html # for more information on how to write migrations for GitLab. class <%= migration_class_name %> < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version %>] diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 51e6ea76323..6f31a717b61 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -1674,6 +1674,9 @@ msgstr "" msgid "Amount of time (in hours) that users are allowed to skip forced configuration of two-factor authentication" msgstr "" +msgid "An alert has been triggered in %{project_path}." +msgstr "" + msgid "An application called %{link_to_client} is requesting access to your GitLab account." msgstr "" @@ -12164,6 +12167,9 @@ msgstr "" msgid "Metric was successfully updated." msgstr "" +msgid "Metric:" +msgstr "" + msgid "MetricChart|Please select a metric" msgstr "" @@ -21508,6 +21514,9 @@ msgstr "" msgid "View group labels" msgstr "" +msgid "View incident issues." +msgstr "" + msgid "View issue" msgstr "" @@ -21532,6 +21541,9 @@ msgstr "" msgid "View open merge request" msgstr "" +msgid "View performance dashboard." +msgstr "" + msgid "View project" msgstr "" @@ -21550,6 +21562,9 @@ msgstr "" msgid "View the latest successful deployment to this environment" msgstr "" +msgid "View the performance dashboard at" +msgstr "" + msgid "Viewing commit" msgstr "" diff --git a/spec/javascripts/notes/components/noteable_note_spec.js b/spec/javascripts/notes/components/noteable_note_spec.js index 5fbac7faefd..1906dae7800 100644 --- a/spec/javascripts/notes/components/noteable_note_spec.js +++ b/spec/javascripts/notes/components/noteable_note_spec.js @@ -1,4 +1,4 @@ -import _ from 'underscore'; +import { escape } from 'lodash'; import { shallowMount, createLocalVue } from '@vue/test-utils'; import createStore from '~/notes/stores'; import issueNote from '~/notes/components/noteable_note.vue'; @@ -98,7 +98,7 @@ describe('issue_note', () => { setTimeout(() => { expect(alertSpy).not.toHaveBeenCalled(); - expect(wrapper.vm.note.note_html).toEqual(_.escape(noteBody)); + expect(wrapper.vm.note.note_html).toEqual(escape(noteBody)); done(); }, 0); }); diff --git a/spec/lib/gitlab/alerting/alert_spec.rb b/spec/lib/gitlab/alerting/alert_spec.rb index 90e93d189e2..790edbc9c60 100644 --- a/spec/lib/gitlab/alerting/alert_spec.rb +++ b/spec/lib/gitlab/alerting/alert_spec.rb @@ -17,6 +17,12 @@ describe Gitlab::Alerting::Alert do end end + shared_context 'full query' do + before do + payload['generatorURL'] = 'http://localhost:9090/graph?g0.expr=vector%281%29' + end + end + shared_examples 'invalid alert' do it 'is invalid' do expect(alert).not_to be_valid @@ -180,10 +186,7 @@ describe Gitlab::Alerting::Alert do context 'with gitlab alert' do include_context 'gitlab alert' - - before do - payload['generatorURL'] = 'http://localhost:9090/graph?g0.expr=vector%281%29' - end + include_context 'full query' it { is_expected.to eq(gitlab_alert.full_query) } end diff --git a/spec/presenters/projects/prometheus/alert_presenter_spec.rb b/spec/presenters/projects/prometheus/alert_presenter_spec.rb index fc6ddcbfe02..ddf0934573f 100644 --- a/spec/presenters/projects/prometheus/alert_presenter_spec.rb +++ b/spec/presenters/projects/prometheus/alert_presenter_spec.rb @@ -9,6 +9,15 @@ describe Projects::Prometheus::AlertPresenter do let(:payload) { {} } let(:alert) { create(:alerting_alert, project: project, payload: payload) } + shared_context 'gitlab alert' do + let(:gitlab_alert) { create(:prometheus_alert, project: project) } + let(:metric_id) { gitlab_alert.prometheus_metric_id } + + let(:alert) do + create(:alerting_alert, project: project, metric_id: metric_id) + end + end + describe '#project_full_path' do subject { presenter.project_full_path } @@ -145,13 +154,35 @@ describe Projects::Prometheus::AlertPresenter do end end - context 'with gitlab alert' do - let(:gitlab_alert) { create(:prometheus_alert, project: project) } - let(:metric_id) { gitlab_alert.prometheus_metric_id } + describe '#show_performance_dashboard_link?' do + subject { presenter.show_performance_dashboard_link? } - let(:alert) do - create(:alerting_alert, project: project, metric_id: metric_id) + it { is_expected.to be_falsey } + + context 'with gitlab alert' do + include_context 'gitlab alert' + + it { is_expected.to eq(true) } + end + end + + describe '#show_incident_issues_link?' do + subject { presenter.show_incident_issues_link? } + + it { is_expected.to be_falsey } + + context 'create issue setting enabled' do + before do + create(:project_incident_management_setting, project: project, create_issue: true) + project.reload + end + + it { is_expected.to eq(true) } end + end + + context 'with gitlab alert' do + include_context 'gitlab alert' describe '#full_title' do let(:query_title) do @@ -189,6 +220,17 @@ describe Projects::Prometheus::AlertPresenter do it { is_expected.to eq(expected_link) } end + + describe '#incident_issues_link' do + let(:expected_link) do + Gitlab::Routing.url_helpers + .project_issues_url(project, label_name: described_class::INCIDENT_LABEL_NAME) + end + + subject { presenter.incident_issues_link } + + it { is_expected.to eq(expected_link) } + end end context 'without gitlab alert' do diff --git a/spec/requests/api/access_requests_spec.rb b/spec/requests/api/access_requests_spec.rb index 17f4cde5b8c..52bc81cff18 100644 --- a/spec/requests/api/access_requests_spec.rb +++ b/spec/requests/api/access_requests_spec.rb @@ -37,7 +37,7 @@ describe API::AccessRequests do user = public_send(type) get api("/#{source_type.pluralize}/#{source.id}/access_requests", user) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end end @@ -47,7 +47,7 @@ describe API::AccessRequests do it 'returns access requesters' do get api("/#{source_type.pluralize}/#{source.id}/access_requests", maintainer) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.size).to eq(1) @@ -70,7 +70,7 @@ describe API::AccessRequests do user = public_send(type) post api("/#{source_type.pluralize}/#{source.id}/access_requests", user) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end.not_to change { source.requesters.count } end end @@ -82,7 +82,7 @@ describe API::AccessRequests do expect do post api("/#{source_type.pluralize}/#{source.id}/access_requests", access_requester) - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end.not_to change { source.requesters.count } end end @@ -97,7 +97,7 @@ describe API::AccessRequests do expect do post api("/#{source_type.pluralize}/#{source.id}/access_requests", stranger) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end.not_to change { source.requesters.count } end end @@ -106,7 +106,7 @@ describe API::AccessRequests do expect do post api("/#{source_type.pluralize}/#{source.id}/access_requests", stranger) - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) end.to change { source.requesters.count }.by(1) # User attributes @@ -137,7 +137,7 @@ describe API::AccessRequests do user = public_send(type) put api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}/approve", user) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end end @@ -149,7 +149,7 @@ describe API::AccessRequests do put api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}/approve", maintainer), params: { access_level: Member::MAINTAINER } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) end.to change { source.members.count }.by(1) # User attributes expect(json_response['id']).to eq(access_requester.id) @@ -168,7 +168,7 @@ describe API::AccessRequests do expect do put api("/#{source_type.pluralize}/#{source.id}/access_requests/#{stranger.id}/approve", maintainer) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end.not_to change { source.members.count } end end @@ -189,7 +189,7 @@ describe API::AccessRequests do user = public_send(type) delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}", user) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end end @@ -200,7 +200,7 @@ describe API::AccessRequests do expect do delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}", access_requester) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end.to change { source.requesters.count }.by(-1) end end @@ -210,7 +210,7 @@ describe API::AccessRequests do expect do delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}", maintainer) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end.to change { source.requesters.count }.by(-1) end @@ -219,7 +219,7 @@ describe API::AccessRequests do expect do delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{developer.id}", maintainer) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end.not_to change { source.requesters.count } end end @@ -229,7 +229,7 @@ describe API::AccessRequests do expect do delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{stranger.id}", maintainer) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end.not_to change { source.requesters.count } end end diff --git a/spec/requests/api/appearance_spec.rb b/spec/requests/api/appearance_spec.rb index 40fd216f32d..70be3adf723 100644 --- a/spec/requests/api/appearance_spec.rb +++ b/spec/requests/api/appearance_spec.rb @@ -11,7 +11,7 @@ describe API::Appearance, 'Appearance' do it "returns 403" do get api("/application/appearance", user) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end @@ -19,7 +19,7 @@ describe API::Appearance, 'Appearance' do it "returns appearance" do get api("/application/appearance", admin) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response).to be_an Hash expect(json_response['description']).to eq('') expect(json_response['email_header_and_footer_enabled']).to be(false) @@ -41,7 +41,7 @@ describe API::Appearance, 'Appearance' do it "returns 403" do put api("/application/appearance", user), params: { title: "Test" } - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end @@ -54,7 +54,7 @@ describe API::Appearance, 'Appearance' do new_project_guidelines: "Please read the FAQs for help." } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response).to be_an Hash expect(json_response['description']).to eq('gitlab-test.example.com') expect(json_response['email_header_and_footer_enabled']).to be(false) @@ -82,7 +82,7 @@ describe API::Appearance, 'Appearance' do put api("/application/appearance", admin), params: settings - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) settings.each do |attribute, value| expect(Appearance.current.public_send(attribute)).to eq(value) end @@ -92,14 +92,14 @@ describe API::Appearance, 'Appearance' do it "with message_font_color" do put api("/application/appearance", admin), params: { message_font_color: "No Color" } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['message']['message_font_color']).to contain_exactly('must be a valid color code') end it "with message_background_color" do put api("/application/appearance", admin), params: { message_background_color: "#1" } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['message']['message_background_color']).to contain_exactly('must be a valid color code') end end @@ -115,7 +115,7 @@ describe API::Appearance, 'Appearance' do favicon: fixture_file_upload("spec/fixtures/dk.png", "image/png") } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['logo']).to eq("/uploads/-/system/appearance/logo/#{appearance.id}/dk.png") expect(json_response['header_logo']).to eq("/uploads/-/system/appearance/header_logo/#{appearance.id}/dk.png") expect(json_response['favicon']).to eq("/uploads/-/system/appearance/favicon/#{appearance.id}/dk.png") @@ -125,14 +125,14 @@ describe API::Appearance, 'Appearance' do it "with string instead of file" do put api("/application/appearance", admin), params: { logo: 'not-a-file.png' } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['error']).to eq("logo is invalid") end it "with .svg file instead of .png" do put api("/application/appearance", admin), params: { favicon: fixture_file_upload("spec/fixtures/logo_sample.svg", "image/svg") } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['message']['favicon']).to contain_exactly("You are not allowed to upload \"svg\" files, allowed types: png, ico") end end diff --git a/spec/requests/api/applications_spec.rb b/spec/requests/api/applications_spec.rb index d110751e661..cd341ad134e 100644 --- a/spec/requests/api/applications_spec.rb +++ b/spec/requests/api/applications_spec.rb @@ -16,7 +16,7 @@ describe API::Applications, :api do application = Doorkeeper::Application.find_by(name: 'application_name', redirect_uri: 'http://application.url') - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to be_a Hash expect(json_response['application_id']).to eq application.uid expect(json_response['secret']).to eq application.secret @@ -29,7 +29,7 @@ describe API::Applications, :api do post api('/applications', admin_user), params: { name: 'application_name', redirect_uri: 'http://', scopes: '' } end.not_to change { Doorkeeper::Application.count } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response).to be_a Hash expect(json_response['message']['redirect_uri'][0]).to eq('must be an absolute URI.') end @@ -39,7 +39,7 @@ describe API::Applications, :api do post api('/applications', admin_user), params: { name: 'application_name', redirect_uri: 'javascript://alert()', scopes: '' } end.not_to change { Doorkeeper::Application.count } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response).to be_a Hash expect(json_response['message']['redirect_uri'][0]).to eq('is forbidden by the server.') end @@ -49,7 +49,7 @@ describe API::Applications, :api do post api('/applications', admin_user), params: { redirect_uri: 'http://application.url', scopes: '' } end.not_to change { Doorkeeper::Application.count } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response).to be_a Hash expect(json_response['error']).to eq('name is missing') end @@ -59,7 +59,7 @@ describe API::Applications, :api do post api('/applications', admin_user), params: { name: 'application_name', scopes: '' } end.not_to change { Doorkeeper::Application.count } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response).to be_a Hash expect(json_response['error']).to eq('redirect_uri is missing') end @@ -69,7 +69,7 @@ describe API::Applications, :api do post api('/applications', admin_user), params: { name: 'application_name', redirect_uri: 'http://application.url' } end.not_to change { Doorkeeper::Application.count } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response).to be_a Hash expect(json_response['error']).to eq('scopes is missing') end @@ -79,7 +79,7 @@ describe API::Applications, :api do post api('/applications', admin_user), params: { name: 'application_name', redirect_uri: 'http://application.url', scopes: '', confidential: nil } end.not_to change { Doorkeeper::Application.count } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response).to be_a Hash expect(json_response['message']['confidential'].first).to eq('is not included in the list') end @@ -91,7 +91,7 @@ describe API::Applications, :api do post api('/applications', user), params: { name: 'application_name', redirect_uri: 'http://application.url', scopes: '' } end.not_to change { Doorkeeper::Application.count } - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end @@ -101,7 +101,7 @@ describe API::Applications, :api do post api('/applications'), params: { name: 'application_name', redirect_uri: 'http://application.url' } end.not_to change { Doorkeeper::Application.count } - expect(response).to have_gitlab_http_status(401) + expect(response).to have_gitlab_http_status(:unauthorized) end end end @@ -111,7 +111,7 @@ describe API::Applications, :api do it 'can list application' do get api('/applications', admin_user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response).to be_a(Array) end end @@ -120,7 +120,7 @@ describe API::Applications, :api do it 'cannot list application' do get api('/applications', user) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end @@ -128,7 +128,7 @@ describe API::Applications, :api do it 'cannot list application' do get api('/applications') - expect(response).to have_gitlab_http_status(401) + expect(response).to have_gitlab_http_status(:unauthorized) end end end @@ -140,7 +140,7 @@ describe API::Applications, :api do delete api("/applications/#{application.id}", admin_user) end.to change { Doorkeeper::Application.count }.by(-1) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end end @@ -148,7 +148,7 @@ describe API::Applications, :api do it 'cannot delete an application' do delete api("/applications/#{application.id}", user) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end @@ -156,7 +156,7 @@ describe API::Applications, :api do it 'cannot delete an application' do delete api("/applications/#{application.id}") - expect(response).to have_gitlab_http_status(401) + expect(response).to have_gitlab_http_status(:unauthorized) end end end diff --git a/spec/requests/api/award_emoji_spec.rb b/spec/requests/api/award_emoji_spec.rb index 4a830f2b449..fea1e3ac836 100644 --- a/spec/requests/api/award_emoji_spec.rb +++ b/spec/requests/api/award_emoji_spec.rb @@ -20,7 +20,7 @@ describe API::AwardEmoji do it "returns an array of award_emoji" do get api("/projects/#{project.id}/issues/#{issue.iid}/award_emoji", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response).to be_an Array expect(json_response.first['name']).to eq(award_emoji.name) end @@ -28,7 +28,7 @@ describe API::AwardEmoji do it "returns a 404 error when issue id not found" do get api("/projects/#{project.id}/issues/12345/award_emoji", user) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end @@ -36,7 +36,7 @@ describe API::AwardEmoji do it "returns an array of award_emoji" do get api("/projects/#{project.id}/merge_requests/#{merge_request.iid}/award_emoji", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.first['name']).to eq(downvote.name) @@ -50,7 +50,7 @@ describe API::AwardEmoji do it 'returns the awarded emoji' do get api("/projects/#{project.id}/snippets/#{snippet.id}/award_emoji", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response).to be_an Array expect(json_response.first['name']).to eq(award.name) end @@ -62,7 +62,7 @@ describe API::AwardEmoji do get api("/projects/#{project.id}/merge_requests/#{merge_request.iid}/award_emoji", user1) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end end @@ -73,7 +73,7 @@ describe API::AwardEmoji do it 'returns an array of award emoji' do get api("/projects/#{project.id}/issues/#{issue.iid}/notes/#{note.id}/award_emoji", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response).to be_an Array expect(json_response.first['name']).to eq(rocket.name) end @@ -84,7 +84,7 @@ describe API::AwardEmoji do it "returns the award emoji" do get api("/projects/#{project.id}/issues/#{issue.iid}/award_emoji/#{award_emoji.id}", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['name']).to eq(award_emoji.name) expect(json_response['awardable_id']).to eq(issue.id) expect(json_response['awardable_type']).to eq("Issue") @@ -93,7 +93,7 @@ describe API::AwardEmoji do it "returns a 404 error if the award is not found" do get api("/projects/#{project.id}/issues/#{issue.iid}/award_emoji/12345", user) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end @@ -101,7 +101,7 @@ describe API::AwardEmoji do it 'returns the award emoji' do get api("/projects/#{project.id}/merge_requests/#{merge_request.iid}/award_emoji/#{downvote.id}", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['name']).to eq(downvote.name) expect(json_response['awardable_id']).to eq(merge_request.id) expect(json_response['awardable_type']).to eq("MergeRequest") @@ -115,7 +115,7 @@ describe API::AwardEmoji do it 'returns the awarded emoji' do get api("/projects/#{project.id}/snippets/#{snippet.id}/award_emoji/#{award.id}", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['name']).to eq(award.name) expect(json_response['awardable_id']).to eq(snippet.id) expect(json_response['awardable_type']).to eq("Snippet") @@ -128,7 +128,7 @@ describe API::AwardEmoji do get api("/projects/#{project.id}/merge_requests/#{merge_request.iid}/award_emoji/#{downvote.id}", user1) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end end @@ -139,7 +139,7 @@ describe API::AwardEmoji do it 'returns an award emoji' do get api("/projects/#{project.id}/issues/#{issue.iid}/notes/#{note.id}/award_emoji/#{rocket.id}", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response).not_to be_an Array expect(json_response['name']).to eq(rocket.name) end @@ -152,7 +152,7 @@ describe API::AwardEmoji do it "creates a new award emoji" do post api("/projects/#{project.id}/issues/#{issue.iid}/award_emoji", user), params: { name: 'blowfish' } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['name']).to eq('blowfish') expect(json_response['user']['username']).to eq(user.username) end @@ -168,13 +168,13 @@ describe API::AwardEmoji do it "returns a 400 bad request error if the name is not given" do post api("/projects/#{project.id}/issues/#{issue.iid}/award_emoji", user) - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end it "returns a 401 unauthorized error if the user is not authenticated" do post api("/projects/#{project.id}/issues/#{issue.iid}/award_emoji"), params: { name: 'thumbsup' } - expect(response).to have_gitlab_http_status(401) + expect(response).to have_gitlab_http_status(:unauthorized) end it "normalizes +1 as thumbsup award" do @@ -188,7 +188,7 @@ describe API::AwardEmoji do post api("/projects/#{project.id}/issues/#{issue.iid}/award_emoji", user), params: { name: 'thumbsup' } post api("/projects/#{project.id}/issues/#{issue.iid}/award_emoji", user), params: { name: 'thumbsup' } - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) expect(json_response["message"]).to match("has already been taken") end end @@ -200,7 +200,7 @@ describe API::AwardEmoji do post api("/projects/#{project.id}/snippets/#{snippet.id}/award_emoji", user), params: { name: 'blowfish' } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['name']).to eq('blowfish') expect(json_response['user']['username']).to eq(user.username) end @@ -215,7 +215,7 @@ describe API::AwardEmoji do post api("/projects/#{project.id}/issues/#{issue.iid}/notes/#{note.id}/award_emoji", user), params: { name: 'rocket' } end.to change { note.award_emoji.count }.from(0).to(1) - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['user']['username']).to eq(user.username) end @@ -238,7 +238,7 @@ describe API::AwardEmoji do post api("/projects/#{project.id}/issues/#{issue.iid}/notes/#{note.id}/award_emoji", user), params: { name: 'rocket' } post api("/projects/#{project.id}/issues/#{issue.iid}/notes/#{note.id}/award_emoji", user), params: { name: 'rocket' } - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) expect(json_response["message"]).to match("has already been taken") end end @@ -250,14 +250,14 @@ describe API::AwardEmoji do expect do delete api("/projects/#{project.id}/issues/#{issue.iid}/award_emoji/#{award_emoji.id}", user) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end.to change { issue.award_emoji.count }.from(1).to(0) end it 'returns a 404 error when the award emoji can not be found' do delete api("/projects/#{project.id}/issues/#{issue.iid}/award_emoji/12345", user) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end it_behaves_like '412 response' do @@ -270,14 +270,14 @@ describe API::AwardEmoji do expect do delete api("/projects/#{project.id}/merge_requests/#{merge_request.iid}/award_emoji/#{downvote.id}", user) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end.to change { merge_request.award_emoji.count }.from(1).to(0) end it 'returns a 404 error when note id not found' do delete api("/projects/#{project.id}/merge_requests/#{merge_request.iid}/notes/12345", user) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end it_behaves_like '412 response' do @@ -293,7 +293,7 @@ describe API::AwardEmoji do expect do delete api("/projects/#{project.id}/snippets/#{snippet.id}/award_emoji/#{award.id}", user) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end.to change { snippet.award_emoji.count }.from(1).to(0) end @@ -310,7 +310,7 @@ describe API::AwardEmoji do expect do delete api("/projects/#{project.id}/issues/#{issue.iid}/notes/#{note.id}/award_emoji/#{rocket.id}", user) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end.to change { note.award_emoji.count }.from(1).to(0) end diff --git a/spec/requests/api/badges_spec.rb b/spec/requests/api/badges_spec.rb index d931dea01e7..d7f9b7d010b 100644 --- a/spec/requests/api/badges_spec.rb +++ b/spec/requests/api/badges_spec.rb @@ -35,7 +35,7 @@ describe API::Badges do get api("/#{source_type.pluralize}/#{source.id}/badges", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.size).to eq(badges_count) @@ -80,7 +80,7 @@ describe API::Badges do get api("/#{source_type.pluralize}/#{source.id}/badges/#{badge.id}", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['name']).to eq(badge.name) expect(json_response['id']).to eq(badge.id) expect(json_response['link_url']).to eq(badge.link_url) @@ -120,7 +120,7 @@ describe API::Badges do post api("/#{source_type.pluralize}/#{source.id}/badges", user), params: { link_url: example_url, image_url: example_url2 } - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end end @@ -132,7 +132,7 @@ describe API::Badges do post api("/#{source_type.pluralize}/#{source.id}/badges", maintainer), params: { name: example_name, link_url: example_url, image_url: example_url2 } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) end.to change { source.badges.count }.by(1) expect(json_response['name']).to eq(example_name) @@ -146,21 +146,21 @@ describe API::Badges do post api("/#{source_type.pluralize}/#{source.id}/badges", maintainer), params: { link_url: example_url } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end it 'returns 400 when image_url is not given' do post api("/#{source_type.pluralize}/#{source.id}/badges", maintainer), params: { image_url: example_url2 } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end it 'returns 400 when link_url or image_url is not valid' do post api("/#{source_type.pluralize}/#{source.id}/badges", maintainer), params: { link_url: 'whatever', image_url: 'whatever' } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end end end @@ -192,7 +192,7 @@ describe API::Badges do put api("/#{source_type.pluralize}/#{source.id}/badges/#{badge.id}", user), params: { link_url: example_url } - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end end @@ -203,7 +203,7 @@ describe API::Badges do put api("/#{source_type.pluralize}/#{source.id}/badges/#{badge.id}", maintainer), params: { name: example_name, link_url: example_url, image_url: example_url2 } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['name']).to eq(example_name) expect(json_response['link_url']).to eq(example_url) expect(json_response['image_url']).to eq(example_url2) @@ -215,7 +215,7 @@ describe API::Badges do put api("/#{source_type.pluralize}/#{source.id}/badges/#{badge.id}", maintainer), params: { link_url: 'whatever', image_url: 'whatever' } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end end end @@ -240,7 +240,7 @@ describe API::Badges do delete api("/#{source_type.pluralize}/#{source.id}/badges/#{badge.id}", user) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end end @@ -251,7 +251,7 @@ describe API::Badges do expect do delete api("/#{source_type.pluralize}/#{source.id}/badges/#{badge.id}", maintainer) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end.to change { source.badges.count }.by(-1) end @@ -263,7 +263,7 @@ describe API::Badges do it 'returns 404 if badge does not exist' do delete api("/#{source_type.pluralize}/#{source.id}/badges/123", maintainer) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end end @@ -290,7 +290,7 @@ describe API::Badges do get api("/#{source_type.pluralize}/#{source.id}/badges/render?link_url=#{example_url}&image_url=#{example_url2}", user) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end end @@ -300,7 +300,7 @@ describe API::Badges do it 'gets the rendered badge values' do get api("/#{source_type.pluralize}/#{source.id}/badges/render?link_url=#{example_url}&image_url=#{example_url2}", maintainer) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response.keys).to contain_exactly('name', 'link_url', 'rendered_link_url', 'image_url', 'rendered_image_url') expect(json_response['link_url']).to eq(example_url) @@ -313,19 +313,19 @@ describe API::Badges do it 'returns 400 when link_url is not given' do get api("/#{source_type.pluralize}/#{source.id}/badges/render?link_url=#{example_url}", maintainer) - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end it 'returns 400 when image_url is not given' do get api("/#{source_type.pluralize}/#{source.id}/badges/render?image_url=#{example_url}", maintainer) - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end it 'returns 400 when link_url or image_url is not valid' do get api("/#{source_type.pluralize}/#{source.id}/badges/render?link_url=whatever&image_url=whatever", maintainer) - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end end end @@ -335,7 +335,7 @@ describe API::Badges do it 'cannot delete badges owned by the project group' do delete api("/projects/#{project.id}/badges/#{project_group.badges.first.id}", maintainer) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end end diff --git a/spec/requests/api/boards_spec.rb b/spec/requests/api/boards_spec.rb index f53bfedb49a..d761b371821 100644 --- a/spec/requests/api/boards_spec.rb +++ b/spec/requests/api/boards_spec.rb @@ -45,7 +45,7 @@ describe API::Boards do post api(url, user), params: { label_id: group_label.id } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['label']['name']).to eq(group_label.title) expect(json_response['position']).to eq(3) end @@ -60,7 +60,7 @@ describe API::Boards do post api(url, user), params: { label_id: group_label.id } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['label']['name']).to eq(group_label.title) end end @@ -78,7 +78,7 @@ describe API::Boards do post api(url, user), params: { label_id: group_label.id } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['label']['name']).to eq(group_label.title) end end diff --git a/spec/requests/api/branches_spec.rb b/spec/requests/api/branches_spec.rb index 046ec40f218..97f880dd3cd 100644 --- a/spec/requests/api/branches_spec.rb +++ b/spec/requests/api/branches_spec.rb @@ -31,7 +31,7 @@ describe API::Branches do it 'returns the repository branches' do get api(route, current_user), params: { per_page: 100 } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema('public_api/v4/branches') expect(response).to include_pagination_headers branch_names = json_response.map { |x| x['name'] } @@ -51,7 +51,7 @@ describe API::Branches do get api(route, current_user), params: { per_page: 2 } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) check_merge_status(json_response) end @@ -59,7 +59,7 @@ describe API::Branches do it 'merge status matches reality on paginated input' do get api(route, current_user), params: { per_page: 20, page: 2 } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) check_merge_status(json_response) end @@ -155,14 +155,14 @@ describe API::Branches do it 'returns 204 No Content' do head api(route, user) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) expect(response.body).to be_empty end it 'returns 404 Not Found' do head api("/projects/#{project_id}/repository/branches/unknown", user) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) expect(response.body).to be_empty end end @@ -170,7 +170,7 @@ describe API::Branches do it 'returns the repository branch' do get api(route, current_user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema('public_api/v4/branch') expect(json_response['name']).to eq(CGI.unescape(branch_name)) end @@ -298,7 +298,7 @@ describe API::Branches do it 'protects a single branch' do put api(route, current_user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema('public_api/v4/branch') expect(json_response['name']).to eq(CGI.unescape(branch_name)) expect(json_response['protected']).to eq(true) @@ -307,7 +307,7 @@ describe API::Branches do it 'protects a single branch and developers can push' do put api(route, current_user), params: { developers_can_push: true } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema('public_api/v4/branch') expect(json_response['name']).to eq(CGI.unescape(branch_name)) expect(json_response['protected']).to eq(true) @@ -318,7 +318,7 @@ describe API::Branches do it 'protects a single branch and developers can merge' do put api(route, current_user), params: { developers_can_merge: true } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema('public_api/v4/branch') expect(json_response['name']).to eq(CGI.unescape(branch_name)) expect(json_response['protected']).to eq(true) @@ -329,7 +329,7 @@ describe API::Branches do it 'protects a single branch and developers can push and merge' do put api(route, current_user), params: { developers_can_push: true, developers_can_merge: true } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema('public_api/v4/branch') expect(json_response['name']).to eq(CGI.unescape(branch_name)) expect(json_response['protected']).to eq(true) @@ -428,7 +428,7 @@ describe API::Branches do put api("/projects/#{project.id}/repository/branches/#{protected_branch.name}/protect", user), params: { developers_can_push: false, developers_can_merge: false } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema('public_api/v4/branch') expect(json_response['name']).to eq(protected_branch.name) expect(json_response['protected']).to eq(true) @@ -446,7 +446,7 @@ describe API::Branches do put api("/projects/#{project.id}/repository/branches/#{protected_branch.name}/protect", user), params: { developers_can_push: true, developers_can_merge: true } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema('public_api/v4/branch') expect(json_response['name']).to eq(protected_branch.name) expect(json_response['protected']).to eq(true) @@ -465,7 +465,7 @@ describe API::Branches do it 'unprotects a single branch' do put api(route, current_user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema('public_api/v4/branch') expect(json_response['name']).to eq(CGI.unescape(branch_name)) expect(json_response['protected']).to eq(false) @@ -559,7 +559,7 @@ describe API::Branches do it 'creates a new branch' do post api(route, current_user), params: { branch: 'feature1', ref: branch_sha } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(response).to match_response_schema('public_api/v4/branch') expect(json_response['name']).to eq('feature1') expect(json_response['commit']['id']).to eq(branch_sha) @@ -604,25 +604,25 @@ describe API::Branches do it 'returns 400 if branch name is invalid' do post api(route, user), params: { branch: 'new design', ref: branch_sha } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['message']).to eq('Branch name is invalid') end it 'returns 400 if branch already exists', :clean_gitlab_redis_cache do post api(route, user), params: { branch: 'new_design1', ref: branch_sha } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) post api(route, user), params: { branch: 'new_design1', ref: branch_sha } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['message']).to eq('Branch already exists') end it 'returns 400 if ref name is invalid' do post api(route, user), params: { branch: 'new_design3', ref: 'foo' } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['message']).to eq('Invalid reference name: new_design3') end end @@ -637,19 +637,19 @@ describe API::Branches do it 'removes branch' do delete api("/projects/#{project.id}/repository/branches/#{branch_name}", user) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end it 'removes a branch with dots in the branch name' do delete api("/projects/#{project.id}/repository/branches/#{branch_with_dot.name}", user) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end it 'returns 404 if branch not exists' do delete api("/projects/#{project.id}/repository/branches/foobar", user) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end context 'when the branch refname is invalid' do @@ -676,14 +676,14 @@ describe API::Branches do it 'returns 202 with json body' do delete api("/projects/#{project.id}/repository/merged_branches", user) - expect(response).to have_gitlab_http_status(202) + expect(response).to have_gitlab_http_status(:accepted) expect(json_response['message']).to eql('202 Accepted') end it 'returns a 403 error if guest' do delete api("/projects/#{project.id}/repository/merged_branches", guest) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end end diff --git a/spec/requests/api/broadcast_messages_spec.rb b/spec/requests/api/broadcast_messages_spec.rb index 7d71b83e147..17b25d5c7cc 100644 --- a/spec/requests/api/broadcast_messages_spec.rb +++ b/spec/requests/api/broadcast_messages_spec.rb @@ -13,7 +13,7 @@ describe API::BroadcastMessages do get api('/broadcast_messages') - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_kind_of(Array) expect(json_response.first.keys) @@ -25,7 +25,7 @@ describe API::BroadcastMessages do it 'returns the specified message' do get api("/broadcast_messages/#{message.id}") - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['id']).to eq message.id expect(json_response.keys) .to match_array(%w(id message starts_at ends_at color font active target_path broadcast_type)) @@ -36,13 +36,13 @@ describe API::BroadcastMessages do it 'returns a 401 for anonymous users' do post api('/broadcast_messages'), params: attributes_for(:broadcast_message) - expect(response).to have_gitlab_http_status(401) + expect(response).to have_gitlab_http_status(:unauthorized) end it 'returns a 403 for users' do post api('/broadcast_messages', user), params: attributes_for(:broadcast_message) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end context 'as an admin' do @@ -52,7 +52,7 @@ describe API::BroadcastMessages do post api('/broadcast_messages', admin), params: attrs - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['error']).to eq 'message is missing' end @@ -61,7 +61,7 @@ describe API::BroadcastMessages do travel_to(time) do post api('/broadcast_messages', admin), params: { message: 'Test message' } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['starts_at']).to eq '2016-07-02T10:11:12.000Z' expect(json_response['ends_at']).to eq '2016-07-02T11:11:12.000Z' end @@ -72,7 +72,7 @@ describe API::BroadcastMessages do post api('/broadcast_messages', admin), params: attrs - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['color']).to eq attrs[:color] expect(json_response['font']).to eq attrs[:font] end @@ -82,7 +82,7 @@ describe API::BroadcastMessages do post api('/broadcast_messages', admin), params: attrs - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['target_path']).to eq attrs[:target_path] end @@ -91,7 +91,7 @@ describe API::BroadcastMessages do post api('/broadcast_messages', admin), params: attrs - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['broadcast_type']).to eq attrs[:broadcast_type] end @@ -100,7 +100,7 @@ describe API::BroadcastMessages do post api('/broadcast_messages', admin), params: attrs - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['broadcast_type']).to eq 'banner' end @@ -109,7 +109,7 @@ describe API::BroadcastMessages do post api('/broadcast_messages', admin), params: attrs - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end end end @@ -119,14 +119,14 @@ describe API::BroadcastMessages do put api("/broadcast_messages/#{message.id}"), params: attributes_for(:broadcast_message) - expect(response).to have_gitlab_http_status(401) + expect(response).to have_gitlab_http_status(:unauthorized) end it 'returns a 403 for users' do put api("/broadcast_messages/#{message.id}", user), params: attributes_for(:broadcast_message) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end context 'as an admin' do @@ -135,7 +135,7 @@ describe API::BroadcastMessages do put api("/broadcast_messages/#{message.id}", admin), params: attrs - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['color']).to eq attrs[:color] expect(json_response['font']).to eq attrs[:font] end @@ -147,7 +147,7 @@ describe API::BroadcastMessages do put api("/broadcast_messages/#{message.id}", admin), params: attrs - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['starts_at']).to eq '2016-07-02T10:11:12.000Z' expect(json_response['ends_at']).to eq '2016-07-02T13:11:12.000Z' end @@ -158,7 +158,7 @@ describe API::BroadcastMessages do put api("/broadcast_messages/#{message.id}", admin), params: attrs - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect { message.reload }.to change { message.message }.to('new message') end @@ -167,7 +167,7 @@ describe API::BroadcastMessages do put api("/broadcast_messages/#{message.id}", admin), params: attrs - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['target_path']).to eq attrs[:target_path] end @@ -176,7 +176,7 @@ describe API::BroadcastMessages do put api("/broadcast_messages/#{message.id}", admin), params: attrs - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['broadcast_type']).to eq attrs[:broadcast_type] end @@ -185,7 +185,7 @@ describe API::BroadcastMessages do put api("/broadcast_messages/#{message.id}", admin), params: attrs - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end end end @@ -195,14 +195,14 @@ describe API::BroadcastMessages do delete api("/broadcast_messages/#{message.id}"), params: attributes_for(:broadcast_message) - expect(response).to have_gitlab_http_status(401) + expect(response).to have_gitlab_http_status(:unauthorized) end it 'returns a 403 for users' do delete api("/broadcast_messages/#{message.id}", user), params: attributes_for(:broadcast_message) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end it_behaves_like '412 response' do @@ -213,7 +213,7 @@ describe API::BroadcastMessages do expect do delete api("/broadcast_messages/#{message.id}", admin) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end.to change { BroadcastMessage.count }.by(-1) end end diff --git a/spec/requests/api/commit_statuses_spec.rb b/spec/requests/api/commit_statuses_spec.rb index 24ed836996e..6b810cf2d89 100644 --- a/spec/requests/api/commit_statuses_spec.rb +++ b/spec/requests/api/commit_statuses_spec.rb @@ -37,7 +37,7 @@ describe API::CommitStatuses do end it 'returns latest commit statuses' do - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array @@ -53,7 +53,7 @@ describe API::CommitStatuses do end it 'returns all commit statuses' do - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(statuses_id).to contain_exactly(status1.id, status2.id, @@ -68,7 +68,7 @@ describe API::CommitStatuses do end it 'returns latest commit statuses for specific ref' do - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(statuses_id).to contain_exactly(status3.id, status5.id) @@ -81,7 +81,7 @@ describe API::CommitStatuses do end it 'return latest commit statuses for specific name' do - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(statuses_id).to contain_exactly(status4.id, status5.id) @@ -108,7 +108,7 @@ describe API::CommitStatuses do end it "does not return project commits" do - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end @@ -118,7 +118,7 @@ describe API::CommitStatuses do end it "does not return project commits" do - expect(response).to have_gitlab_http_status(401) + expect(response).to have_gitlab_http_status(:unauthorized) end end end @@ -134,7 +134,7 @@ describe API::CommitStatuses do it 'creates commit status' do post api(post_url, developer), params: { state: status } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['sha']).to eq(commit.id) expect(json_response['status']).to eq(status) expect(json_response['name']).to eq('default') @@ -162,7 +162,7 @@ describe API::CommitStatuses do job = pipeline.statuses.find_by_name(json_response['name']) - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(job.status).to eq('pending') expect(job.stage_idx).to eq(GenericCommitStatus::EXTERNAL_STAGE_IDX) end @@ -189,7 +189,7 @@ describe API::CommitStatuses do it "to #{status}" do expect { post api(post_url, developer), params: { state: status } }.not_to change { CommitStatus.count } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['status']).to eq(status) end end @@ -211,7 +211,7 @@ describe API::CommitStatuses do it 'creates commit status' do subject - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['sha']).to eq(commit.id) expect(json_response['status']).to eq('success') expect(json_response['name']).to eq('coverage') @@ -227,7 +227,7 @@ describe API::CommitStatuses do it 'sets head pipeline' do subject - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(merge_request.reload.head_pipeline).not_to be_nil end end @@ -254,7 +254,7 @@ describe API::CommitStatuses do end it 'updates a commit status' do - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['sha']).to eq(commit.id) expect(json_response['status']).to eq('success') expect(json_response['name']).to eq('coverage') @@ -300,7 +300,7 @@ describe API::CommitStatuses do end it 'correctly posts a new commit status' do - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['sha']).to eq(commit.id) expect(json_response['status']).to eq('success') end @@ -318,7 +318,7 @@ describe API::CommitStatuses do end it 'does not create commit status' do - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end end @@ -328,7 +328,7 @@ describe API::CommitStatuses do end it 'does not create commit status' do - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end end @@ -342,7 +342,7 @@ describe API::CommitStatuses do let(:user) { developer } it 'does not create commit status' do - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end @@ -350,7 +350,7 @@ describe API::CommitStatuses do let(:user) { create_user(:maintainer) } it 'creates commit status' do - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) end end end @@ -363,7 +363,7 @@ describe API::CommitStatuses do end it 'returns not found error' do - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end @@ -376,7 +376,7 @@ describe API::CommitStatuses do end it 'responds with bad request status and validation errors' do - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['message']['target_url']) .to include 'is blocked: Only allowed schemes are http, https' end @@ -391,7 +391,7 @@ describe API::CommitStatuses do end it 'responds with bad request status and validation errors' do - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['message']['target_url']) .to include 'is blocked: Only allowed schemes are http, https' end @@ -407,7 +407,7 @@ describe API::CommitStatuses do end it 'responds with bad request status and validation errors' do - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['message']['name']) .to include 'has already been taken' end @@ -420,7 +420,7 @@ describe API::CommitStatuses do end it 'does not create commit status' do - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end @@ -430,7 +430,7 @@ describe API::CommitStatuses do end it 'does not create commit status' do - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end @@ -440,7 +440,7 @@ describe API::CommitStatuses do end it 'does not create commit status' do - expect(response).to have_gitlab_http_status(401) + expect(response).to have_gitlab_http_status(:unauthorized) end end end diff --git a/spec/requests/api/commits_spec.rb b/spec/requests/api/commits_spec.rb index c179de249d5..4b110874df0 100644 --- a/spec/requests/api/commits_spec.rb +++ b/spec/requests/api/commits_spec.rb @@ -28,7 +28,7 @@ describe API::Commits do get api(route, current_user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema(schema) expect(json_response.first['id']).to eq(commit.id) expect(json_response.first['committer_name']).to eq(commit.committer_name) @@ -123,7 +123,7 @@ describe API::Commits do it "returns an invalid parameter error message" do get api("/projects/#{project_id}/repository/commits?since=invalid-date", user) - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['error']).to eq('since is invalid') end end @@ -305,13 +305,13 @@ describe API::Commits do it 'returns a 403 unauthorized for user without permissions' do post api(url, guest) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end it 'returns a 400 bad request if no params are given' do post api(url, user) - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end describe 'create' do @@ -365,7 +365,7 @@ describe API::Commits do it 'a new file in project repo' do post api(url, user), params: valid_c_params - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['title']).to eq(message) expect(json_response['committer_name']).to eq(user.name) expect(json_response['committer_email']).to eq(user.email) @@ -374,7 +374,7 @@ describe API::Commits do it 'a new file with utf8 chars in project repo' do post api(url, user), params: valid_utf8_c_params - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['title']).to eq(message) expect(json_response['committer_name']).to eq(user.name) expect(json_response['committer_email']).to eq(user.email) @@ -383,7 +383,7 @@ describe API::Commits do it 'returns a 400 bad request if file exists' do post api(url, user), params: invalid_c_params - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end context 'with project path containing a dot in URL' do @@ -392,7 +392,7 @@ describe API::Commits do it 'a new file in project repo' do post api(url, user), params: valid_c_params - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) end end @@ -414,7 +414,7 @@ describe API::Commits do it 'returns a 403' do post api(url, guest), params: valid_c_params - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end context 'when start_project is provided' do @@ -456,7 +456,7 @@ describe API::Commits do it 'returns a 400' do post api(url, guest), params: valid_c_params - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['message']).to eq("A branch called 'master' already exists. Switch to that branch in order to make changes") end @@ -510,7 +510,7 @@ describe API::Commits do it 'returns a 403' do post api(url, guest), params: valid_c_params - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end end @@ -528,7 +528,7 @@ describe API::Commits do it 'returns a 403' do post api(url, guest), params: valid_c_params - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end end @@ -545,7 +545,7 @@ describe API::Commits do valid_c_params[:start_branch] = 'master' post api(url, user), params: valid_c_params - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['error']).to eq('start_branch, start_sha are mutually exclusive') end @@ -553,7 +553,7 @@ describe API::Commits do valid_c_params[:branch] = 'master' post api(url, user), params: valid_c_params - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['message']).to eq("A branch called 'master' already exists. Switch to that branch in order to make changes") end @@ -561,7 +561,7 @@ describe API::Commits do valid_c_params[:start_sha] = '1' * 40 post api(url, user), params: valid_c_params - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['message']).to eq("Cannot find start_sha '#{valid_c_params[:start_sha]}'") end @@ -569,7 +569,7 @@ describe API::Commits do valid_c_params[:start_sha] = start_sha.slice(0, 7) post api(url, user), params: valid_c_params - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['message']).to eq("Invalid start_sha '#{valid_c_params[:start_sha]}'") end @@ -630,14 +630,14 @@ describe API::Commits do it 'an existing file in project repo' do post api(url, user), params: valid_d_params - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['title']).to eq(message) end it 'returns a 400 bad request if file does not exist' do post api(url, user), params: invalid_d_params - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end end @@ -675,14 +675,14 @@ describe API::Commits do it 'an existing file in project repo' do post api(url, user), params: valid_m_params - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['title']).to eq(message) end it 'returns a 400 bad request if file does not exist' do post api(url, user), params: invalid_m_params - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end end @@ -718,14 +718,14 @@ describe API::Commits do it 'an existing file in project repo' do post api(url, user), params: valid_u_params - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['title']).to eq(message) end it 'returns a 400 bad request if file does not exist' do post api(url, user), params: invalid_u_params - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end end @@ -750,7 +750,7 @@ describe API::Commits do it 'responds with success' do post api(url, user), params: params - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['title']).to eq(message) end @@ -760,7 +760,7 @@ describe API::Commits do it 'responds with success' do post api(url, user), params: params - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['title']).to eq(message) end end @@ -771,7 +771,7 @@ describe API::Commits do it "responds with 400" do post api(url, user), params: params - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['message']).to eq("A file with this name doesn't exist") end end @@ -849,28 +849,28 @@ describe API::Commits do it 'are committed as one in project repo' do post api(url, user), params: valid_mo_params - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['title']).to eq(message) end it 'includes the commit stats' do post api(url, user), params: valid_mo_params - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to include 'stats' end it "doesn't include the commit stats when stats is false" do post api(url, user), params: valid_mo_params.merge(stats: false) - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).not_to include 'stats' end it 'return a 400 bad request if there are any issues' do post api(url, user), params: invalid_mo_params - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end end @@ -937,7 +937,7 @@ describe API::Commits do refs = project.repository.branch_names_contains(commit_id).map {|name| ['branch', name]} refs.concat(project.repository.tag_names_contains(commit_id).map {|name| ['tag', name]}) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.map { |r| [r['type'], r['name']] }.compact).to eq(refs) @@ -949,7 +949,7 @@ describe API::Commits do refs = project.repository.branch_names_contains(commit_id).map {|name| ['branch', name]} refs.concat(project.repository.tag_names_contains(commit_id).map {|name| ['tag', name]}) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response.map { |r| [r['type'], r['name']] }.compact).to eq(refs) end @@ -958,7 +958,7 @@ describe API::Commits do refs = project.repository.branch_names_contains(commit_id).map {|name| ['branch', name]} - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response.map { |r| [r['type'], r['name']] }.compact).to eq(refs) end @@ -967,7 +967,7 @@ describe API::Commits do refs = project.repository.tag_names_contains(commit_id).map {|name| ['tag', name]} - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response.map { |r| [r['type'], r['name']] }.compact).to eq(refs) end end @@ -982,7 +982,7 @@ describe API::Commits do it 'returns the ref last commit' do get api(route, current_user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema('public_api/v4/commit/detail') expect(json_response['id']).to eq(commit.id) expect(json_response['short_id']).to eq(commit.short_id) @@ -1030,7 +1030,7 @@ describe API::Commits do it 'includes status as "created" and a last_pipeline object' do get api(route, current_user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema('public_api/v4/commit/detail') expect(json_response['status']).to eq('created') expect(json_response['last_pipeline']['id']).to eq(pipeline.id) @@ -1047,7 +1047,7 @@ describe API::Commits do it 'includes a "success" status' do get api(route, current_user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema('public_api/v4/commit/detail') expect(json_response['status']).to eq('success') end @@ -1065,7 +1065,7 @@ describe API::Commits do get api(route, current_user) expect(response).to match_response_schema('public_api/v4/commit/detail') - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['last_pipeline']).to be_nil end end @@ -1076,21 +1076,21 @@ describe API::Commits do it 'is not present return stats by default' do get api(route, user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response).to include 'stats' end it "is false it does not include stats" do get api(route, user), params: { stats: false } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response).not_to include 'stats' end it "is true it includes stats" do get api(route, user), params: { stats: true } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response).to include 'stats' end end @@ -1227,7 +1227,7 @@ describe API::Commits do it 'returns the diff of the selected commit' do get api(route, current_user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response.size).to be >= 1 expect(json_response.first.keys).to include 'diff' @@ -1241,7 +1241,7 @@ describe API::Commits do it 'respects the limit' do get api(route, current_user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response.size).to be <= 1 end @@ -1338,7 +1338,7 @@ describe API::Commits do it 'returns the diff of the selected commit' do get api(route, current_user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema('public_api/v4/commit_notes') expect(json_response.size).to eq(2) expect(json_response.first['note']).to eq('a comment on a commit') @@ -1428,7 +1428,7 @@ describe API::Commits do it 'returns the comments for the target project' do get api(route, guest) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema('public_api/v4/commit_notes') expect(json_response.size).to eq(1) expect(json_response.first['note']).to eq('a comment on a commit for fork') @@ -1448,7 +1448,7 @@ describe API::Commits do it 'cherry-picks the ref commit' do post api(route, current_user), params: { branch: branch } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(response).to match_response_schema('public_api/v4/commit/basic') expect(json_response['title']).to eq(commit.title) expect(json_response['message']).to eq(commit.cherry_pick_message(user)) @@ -1608,7 +1608,7 @@ describe API::Commits do it 'reverts the ref commit' do post api(route, current_user), params: { branch: branch } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(response).to match_response_schema('public_api/v4/commit/basic') expect(json_response['message']).to eq(commit.revert_message(user)) @@ -1694,7 +1694,7 @@ describe API::Commits do # Second one is redundant and should be empty post api(route, current_user), params: { branch: 'markdown' } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['error_code']).to eq 'empty' end end @@ -1733,7 +1733,7 @@ describe API::Commits do it 'creates the comment' do post api(route, current_user), params: { note: note } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(response).to match_response_schema('public_api/v4/commit_note') expect(json_response['note']).to eq('My comment') expect(json_response['path']).to be_nil @@ -1774,7 +1774,7 @@ describe API::Commits do it 'returns the inline comment' do post api(route, current_user), params: { note: 'My comment', path: project.repository.commit.raw_diffs.first.new_path, line: 1, line_type: 'new' } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(response).to match_response_schema('public_api/v4/commit_note') expect(json_response['note']).to eq('My comment') expect(json_response['path']).to eq(project.repository.commit.raw_diffs.first.new_path) @@ -1794,7 +1794,7 @@ describe API::Commits do it 'returns 400 if note is missing' do post api(route, current_user) - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end context 'when ref contains a dot' do @@ -1839,7 +1839,7 @@ describe API::Commits do it 'returns the correct merge request' do get api("/projects/#{project.id}/repository/commits/#{commit.id}/merge_requests", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response.length).to eq(1) expect(json_response[0]['id']).to eq(merged_mr.id) @@ -1850,13 +1850,13 @@ describe API::Commits do get api("/projects/#{project.id}/repository/commits/#{commit.id}/merge_requests", user) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end it 'responds 404 when the commit does not exist' do get api("/projects/#{project.id}/repository/commits/a7d26f00c35b/merge_requests", user) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end context 'public project' do @@ -1866,7 +1866,7 @@ describe API::Commits do it 'responds 403 when only members are allowed to read merge requests' do get api("/projects/#{project.id}/repository/commits/#{commit.id}/merge_requests", non_member) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end end @@ -1900,7 +1900,7 @@ describe API::Commits do it 'returns correct JSON' do get api(route, current_user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['gpg_key_id']).to eq(commit.signature.gpg_key_id) expect(json_response['gpg_key_subkey_id']).to eq(commit.signature.gpg_key_subkey_id) expect(json_response['gpg_key_primary_keyid']).to eq(commit.signature.gpg_key_primary_keyid) diff --git a/spec/requests/api/deploy_keys_spec.rb b/spec/requests/api/deploy_keys_spec.rb index 4579ccfad80..9092d132b53 100644 --- a/spec/requests/api/deploy_keys_spec.rb +++ b/spec/requests/api/deploy_keys_spec.rb @@ -51,7 +51,7 @@ describe API::DeployKeys do it 'returns array of ssh keys' do get api("/projects/#{project.id}/deploy_keys", admin) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.first['title']).to eq(deploy_key.title) @@ -62,14 +62,14 @@ describe API::DeployKeys do it 'returns a single key' do get api("/projects/#{project.id}/deploy_keys/#{deploy_key.id}", admin) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['title']).to eq(deploy_key.title) end it 'returns 404 Not Found with invalid ID' do get api("/projects/#{project.id}/deploy_keys/404", admin) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end @@ -77,14 +77,14 @@ describe API::DeployKeys do it 'does not create an invalid ssh key' do post api("/projects/#{project.id}/deploy_keys", admin), params: { title: 'invalid key' } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['error']).to eq('key is missing') end it 'does not create a key without title' do post api("/projects/#{project.id}/deploy_keys", admin), params: { key: 'some key' } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['error']).to eq('title is missing') end @@ -105,7 +105,7 @@ describe API::DeployKeys do post api("/projects/#{project.id}/deploy_keys", admin), params: { key: deploy_key.key, title: deploy_key.title } end.not_to change { project.deploy_keys.count } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) end it 'joins an existing ssh key to a new project' do @@ -113,7 +113,7 @@ describe API::DeployKeys do post api("/projects/#{project2.id}/deploy_keys", admin), params: { key: deploy_key.key, title: deploy_key.title } end.to change { project2.deploy_keys.count }.by(1) - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) end it 'accepts can_push parameter' do @@ -121,7 +121,7 @@ describe API::DeployKeys do post api("/projects/#{project.id}/deploy_keys", admin), params: key_attrs - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['can_push']).to eq(true) end end @@ -139,7 +139,7 @@ describe API::DeployKeys do it 'does not update a public deploy key' do expect { subject }.not_to change(deploy_key, :title) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end @@ -151,12 +151,12 @@ describe API::DeployKeys do it 'updates the title of the deploy key' do expect { subject }.to change { deploy_key.reload.title }.to 'new title' - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end it 'updates can_push of deploy_keys_project' do expect { subject }.to change { deploy_keys_project.reload.can_push }.from(false).to(true) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end end @@ -169,12 +169,12 @@ describe API::DeployKeys do it 'updates the title of the deploy key' do expect { subject }.to change { deploy_key.reload.title }.to 'new title' - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end it 'updates can_push of deploy_keys_project' do expect { subject }.to change { deploy_keys_project.reload.can_push }.from(false).to(true) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end context 'invalid title' do @@ -182,7 +182,7 @@ describe API::DeployKeys do it 'does not update the title of the deploy key' do expect { subject }.not_to change { deploy_key.reload.title } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end end end @@ -200,12 +200,12 @@ describe API::DeployKeys do it 'updates the title of the deploy key' do expect { subject }.to change { deploy_key.reload.title }.to 'new title' - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end it 'updates can_push of deploy_keys_project' do expect { subject }.to change { deploy_keys_project.reload.can_push }.from(false).to(true) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end end end @@ -222,12 +222,12 @@ describe API::DeployKeys do it 'does not update the title of the deploy key' do expect { subject }.not_to change { deploy_key.reload.title } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end it 'updates can_push of deploy_keys_project' do expect { subject }.to change { deploy_keys_project.reload.can_push }.from(false).to(true) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end end end @@ -242,7 +242,7 @@ describe API::DeployKeys do expect do delete api("/projects/#{project.id}/deploy_keys/#{deploy_key.id}", admin) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end.to change { project.deploy_keys.count }.by(-1) end @@ -251,7 +251,7 @@ describe API::DeployKeys do expect do delete api("/projects/#{project.id}/deploy_keys/#{deploy_key.id}", admin) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end.not_to change { DeployKey.count } end end @@ -264,7 +264,7 @@ describe API::DeployKeys do expect do delete api("/projects/#{project.id}/deploy_keys/#{deploy_key.id}", admin) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end.to change { DeployKey.count }.by(-1) end end @@ -278,7 +278,7 @@ describe API::DeployKeys do expect do delete api("/projects/#{project.id}/deploy_keys/#{deploy_key.id}", admin) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end.not_to change { DeployKey.count } end end @@ -287,7 +287,7 @@ describe API::DeployKeys do it 'returns 404 Not Found with invalid ID' do delete api("/projects/#{project.id}/deploy_keys/404", admin) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end it_behaves_like '412 response' do @@ -304,7 +304,7 @@ describe API::DeployKeys do post api("/projects/#{project2.id}/deploy_keys/#{deploy_key.id}/enable", admin) end.to change { project2.deploy_keys.count }.from(0).to(1) - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['id']).to eq(deploy_key.id) end end @@ -313,7 +313,7 @@ describe API::DeployKeys do it 'returns a 404 error' do post api("/projects/#{project2.id}/deploy_keys/#{deploy_key.id}/enable", user) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end end diff --git a/spec/requests/api/deployments_spec.rb b/spec/requests/api/deployments_spec.rb index 151f67061eb..663478942ae 100644 --- a/spec/requests/api/deployments_spec.rb +++ b/spec/requests/api/deployments_spec.rb @@ -20,7 +20,7 @@ describe API::Deployments do it 'returns projects deployments sorted by id asc' do get api("/projects/#{project.id}/deployments", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.size).to eq(3) @@ -74,7 +74,7 @@ describe API::Deployments do let(:order_by) { 'wrong_sorting_value' } it 'returns error' do - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end end @@ -82,7 +82,7 @@ describe API::Deployments do let(:sort) { 'wrong_sorting_direction' } it 'returns error' do - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end end end @@ -92,7 +92,7 @@ describe API::Deployments do it 'returns a 404 status code' do get api("/projects/#{project.id}/deployments", non_member) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end end @@ -105,7 +105,7 @@ describe API::Deployments do it 'returns the projects deployment' do get api("/projects/#{project.id}/deployments/#{deployment.id}", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['sha']).to match /\A\h{40}\z/ expect(json_response['id']).to eq(deployment.id) end @@ -115,7 +115,7 @@ describe API::Deployments do it 'returns a 404 status code' do get api("/projects/#{project.id}/deployments/#{deployment.id}", non_member) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end end @@ -159,7 +159,7 @@ describe API::Deployments do } ) - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['sha']).to eq(sha) expect(json_response['ref']).to eq('master') @@ -178,7 +178,7 @@ describe API::Deployments do } ) - expect(response).to have_gitlab_http_status(500) + expect(response).to have_gitlab_http_status(:internal_server_error) end it 'links any merged merge requests to the deployment', :sidekiq_inline do @@ -228,7 +228,7 @@ describe API::Deployments do } ) - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['sha']).to eq(sha) expect(json_response['ref']).to eq('master') @@ -312,7 +312,7 @@ describe API::Deployments do } ) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end end @@ -341,7 +341,7 @@ describe API::Deployments do params: { status: 'success' } ) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end it 'updates a deployment without an associated build' do @@ -350,7 +350,7 @@ describe API::Deployments do params: { status: 'success' } ) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['status']).to eq('success') end @@ -390,7 +390,7 @@ describe API::Deployments do params: { status: 'success' } ) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end it 'updates a deployment without an associated build' do @@ -399,7 +399,7 @@ describe API::Deployments do params: { status: 'success' } ) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['status']).to eq('success') end end @@ -411,7 +411,7 @@ describe API::Deployments do params: { status: 'success' } ) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end end @@ -428,7 +428,7 @@ describe API::Deployments do it 'returns a 404 status code' do subject - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end @@ -443,7 +443,7 @@ describe API::Deployments do subject - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response.map { |d| d['id'] }).to contain_exactly(merge_request1.id, merge_request2.id) end @@ -451,7 +451,7 @@ describe API::Deployments do it 'returns an empty array' do subject - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response).to eq([]) end end @@ -468,7 +468,7 @@ describe API::Deployments do it 'succeeds', :aggregate_failures do subject - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response.size).to eq(1) end diff --git a/spec/requests/api/discussions_spec.rb b/spec/requests/api/discussions_spec.rb index f37a02e7135..e4dd6dfbeff 100644 --- a/spec/requests/api/discussions_spec.rb +++ b/spec/requests/api/discussions_spec.rb @@ -58,7 +58,7 @@ describe API::Discussions do post api("/projects/#{project.id}/merge_requests/#{noteable['iid']}/discussions", user), params: { body: 'hi!', position: position } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end end end diff --git a/spec/requests/api/doorkeeper_access_spec.rb b/spec/requests/api/doorkeeper_access_spec.rb index 2a34e623a7e..a25a6485f47 100644 --- a/spec/requests/api/doorkeeper_access_spec.rb +++ b/spec/requests/api/doorkeeper_access_spec.rb @@ -10,7 +10,7 @@ describe 'doorkeeper access' do describe "unauthenticated" do it "returns authentication success" do get api("/user"), params: { access_token: token.token } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end include_examples 'user login request with unique ip limit' do @@ -23,14 +23,14 @@ describe 'doorkeeper access' do describe "when token invalid" do it "returns authentication error" do get api("/user"), params: { access_token: "123a" } - expect(response).to have_gitlab_http_status(401) + expect(response).to have_gitlab_http_status(:unauthorized) end end describe "authorization by OAuth token" do it "returns authentication success" do get api("/user", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end include_examples 'user login request with unique ip limit' do @@ -44,7 +44,7 @@ describe 'doorkeeper access' do it 'returns 403 response' do get api("/user"), params: { access_token: token.token } - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end diff --git a/spec/requests/api/environments_spec.rb b/spec/requests/api/environments_spec.rb index bdb0ef44038..56af64342c0 100644 --- a/spec/requests/api/environments_spec.rb +++ b/spec/requests/api/environments_spec.rb @@ -27,7 +27,7 @@ describe API::Environments do get api("/projects/#{project.id}/environments", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.size).to eq(1) @@ -43,7 +43,7 @@ describe API::Environments do it 'returns environment by name' do get api("/projects/#{project.id}/environments?name=#{environment.name}", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.size).to eq(1) @@ -53,7 +53,7 @@ describe API::Environments do it 'returns no environment by non-existent name' do get api("/projects/#{project.id}/environments?name=test", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.size).to eq(0) @@ -62,7 +62,7 @@ describe API::Environments do it 'returns environments by name_like' do get api("/projects/#{project.id}/environments?search=envir", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.size).to eq(2) @@ -71,7 +71,7 @@ describe API::Environments do it 'returns no environment by non-existent name_like' do get api("/projects/#{project.id}/environments?search=test", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.size).to eq(0) @@ -83,7 +83,7 @@ describe API::Environments do it 'returns a 404 status code' do get api("/projects/#{project.id}/environments", non_member) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end end @@ -93,7 +93,7 @@ describe API::Environments do it 'creates a environment with valid params' do post api("/projects/#{project.id}/environments", user), params: { name: "mepmep" } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['name']).to eq('mepmep') expect(json_response['slug']).to eq('mepmep') expect(json_response['external']).to be nil @@ -102,19 +102,19 @@ describe API::Environments do it 'requires name to be passed' do post api("/projects/#{project.id}/environments", user), params: { external_url: 'test.gitlab.com' } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end it 'returns a 400 if environment already exists' do post api("/projects/#{project.id}/environments", user), params: { name: environment.name } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end it 'returns a 400 if slug is specified' do post api("/projects/#{project.id}/environments", user), params: { name: "foo", slug: "foo" } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response["error"]).to eq("slug is automatically generated and cannot be changed") end end @@ -123,7 +123,7 @@ describe API::Environments do it 'rejects the request' do post api("/projects/#{project.id}/environments", non_member), params: { name: 'gitlab.com' } - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end it 'returns a 400 when the required params are missing' do @@ -138,7 +138,7 @@ describe API::Environments do put api("/projects/#{project.id}/environments/#{environment.id}", user), params: { name: 'Mepmep', external_url: url } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['name']).to eq('Mepmep') expect(json_response['external_url']).to eq(url) end @@ -148,7 +148,7 @@ describe API::Environments do api_url = api("/projects/#{project.id}/environments/#{environment.id}", user) put api_url, params: { slug: slug + "-foo" } - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response["error"]).to eq("slug is automatically generated and cannot be changed") end @@ -157,7 +157,7 @@ describe API::Environments do put api("/projects/#{project.id}/environments/#{environment.id}", user), params: { name: 'Mepmep' } - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['name']).to eq('Mepmep') expect(json_response['external_url']).to eq(url) end @@ -165,7 +165,7 @@ describe API::Environments do it 'returns a 404 if the environment does not exist' do put api("/projects/#{project.id}/environments/12345", user) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end @@ -174,13 +174,13 @@ describe API::Environments do it 'returns a 200 for an existing environment' do delete api("/projects/#{project.id}/environments/#{environment.id}", user) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end it 'returns a 404 for non existing id' do delete api("/projects/#{project.id}/environments/12345", user) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) expect(json_response['message']).to eq('404 Not found') end @@ -193,7 +193,7 @@ describe API::Environments do it 'rejects the request' do delete api("/projects/#{project.id}/environments/#{environment.id}", non_member) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end end @@ -208,7 +208,7 @@ describe API::Environments do end it 'returns a 200' do - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end it 'actually stops the environment' do @@ -219,7 +219,7 @@ describe API::Environments do it 'returns a 404 for non existing id' do post api("/projects/#{project.id}/environments/12345/stop", user) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) expect(json_response['message']).to eq('404 Not found') end end @@ -228,7 +228,7 @@ describe API::Environments do it 'rejects the request' do post api("/projects/#{project.id}/environments/#{environment.id}/stop", non_member) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end end @@ -240,7 +240,7 @@ describe API::Environments do get api("/projects/#{project.id}/environments/#{environment.id}", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema('public_api/v4/environment') end end @@ -249,7 +249,7 @@ describe API::Environments do it 'returns a 404 status code' do get api("/projects/#{project.id}/environments/#{environment.id}", non_member) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end end diff --git a/spec/requests/api/events_spec.rb b/spec/requests/api/events_spec.rb index 30e6a1340a8..acf3bb3482a 100644 --- a/spec/requests/api/events_spec.rb +++ b/spec/requests/api/events_spec.rb @@ -16,7 +16,7 @@ describe API::Events do it 'returns authentication error' do get api('/events') - expect(response).to have_gitlab_http_status(401) + expect(response).to have_gitlab_http_status(:unauthorized) end end @@ -24,7 +24,7 @@ describe API::Events do it 'returns users events' do get api('/events?action=closed&target_type=issue&after=2016-12-1&before=2016-12-31', user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.size).to eq(1) @@ -36,7 +36,7 @@ describe API::Events do get api('/events?action=closed&target_type=issue&after=2016-12-1&before=2016-12-31&scope=all', user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.size).to eq(2) @@ -50,7 +50,7 @@ describe API::Events do it 'returns users events' do get api('/events?action=closed&target_type=issue&after=2016-12-1&before=2016-12-31', personal_access_token: token) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.size).to eq(1) @@ -63,7 +63,7 @@ describe API::Events do it 'returns a "403" response' do get api('/events', personal_access_token: token_without_scopes) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end end @@ -76,7 +76,7 @@ describe API::Events do get api("/users/#{user.id}/events", non_member) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response).to be_empty end end @@ -90,7 +90,7 @@ describe API::Events do get api("/users/#{user.id}/events", personal_access_token: non_member_token) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response).to be_empty end end @@ -99,7 +99,7 @@ describe API::Events do it 'accepts a username' do get api("/users/#{user.username}/events", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.size).to eq(1) @@ -108,7 +108,7 @@ describe API::Events do it 'returns the events' do get api("/users/#{user.id}/events", user) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.size).to eq(1) @@ -127,7 +127,7 @@ describe API::Events do end it 'responds with HTTP 200 OK' do - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end it 'includes the push payload as a Hash' do @@ -177,7 +177,7 @@ describe API::Events do it 'returns no user events' do get api("/users/#{user.username}/events?scope=all") - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response).to be_an Array expect(json_response.size).to eq(0) end @@ -188,7 +188,7 @@ describe API::Events do it 'returns a 404 error if not found' do get api('/users/42/events', user) - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) expect(json_response['message']).to eq('404 User Not Found') end end diff --git a/spec/requests/api/features_spec.rb b/spec/requests/api/features_spec.rb index d7b0bf881a6..ce72a416c33 100644 --- a/spec/requests/api/features_spec.rb +++ b/spec/requests/api/features_spec.rb @@ -46,19 +46,19 @@ describe API::Features do it 'returns a 401 for anonymous users' do get api('/features') - expect(response).to have_gitlab_http_status(401) + expect(response).to have_gitlab_http_status(:unauthorized) end it 'returns a 403 for users' do get api('/features', user) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end it 'returns the feature list for admins' do get api('/features', admin) - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response).to match_array(expected_features) end end @@ -70,20 +70,20 @@ describe API::Features do it 'returns a 401 for anonymous users' do post api("/features/#{feature_name}") - expect(response).to have_gitlab_http_status(401) + expect(response).to have_gitlab_http_status(:unauthorized) end it 'returns a 403 for users' do post api("/features/#{feature_name}", user) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end context 'when passed value=true' do it 'creates an enabled feature' do post api("/features/#{feature_name}", admin), params: { value: 'true' } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to eq( 'name' => 'my_feature', 'state' => 'on', @@ -93,7 +93,7 @@ describe API::Features do it 'creates an enabled feature for the given Flipper group when passed feature_group=perf_team' do post api("/features/#{feature_name}", admin), params: { value: 'true', feature_group: 'perf_team' } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to eq( 'name' => 'my_feature', 'state' => 'conditional', @@ -106,7 +106,7 @@ describe API::Features do it 'creates an enabled feature for the given user when passed user=username' do post api("/features/#{feature_name}", admin), params: { value: 'true', user: user.username } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to eq( 'name' => 'my_feature', 'state' => 'conditional', @@ -119,7 +119,7 @@ describe API::Features do it 'creates an enabled feature for the given user and feature group when passed user=username and feature_group=perf_team' do post api("/features/#{feature_name}", admin), params: { value: 'true', user: user.username, feature_group: 'perf_team' } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['name']).to eq('my_feature') expect(json_response['state']).to eq('conditional') expect(json_response['gates']).to contain_exactly( @@ -137,7 +137,7 @@ describe API::Features do it 'sets the feature gate' do post api("/features/#{feature_name}", admin), params: { value: 'true', project: project.full_path } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to eq( 'name' => 'my_feature', 'state' => 'conditional', @@ -152,7 +152,7 @@ describe API::Features do it 'sets no new values' do post api("/features/#{feature_name}", admin), params: { value: 'true', project: 'mep/to/the/mep/mep' } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to eq( "name" => "my_feature", "state" => "off", @@ -171,7 +171,7 @@ describe API::Features do post api("/features/#{feature_name}", admin), params: { value: 'true', group: group.full_path } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to eq( 'name' => 'my_feature', 'state' => 'conditional', @@ -186,7 +186,7 @@ describe API::Features do it 'sets no new values and keeps the feature disabled' do post api("/features/#{feature_name}", admin), params: { value: 'true', group: 'not/a/group' } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to eq( "name" => "my_feature", "state" => "off", @@ -201,7 +201,7 @@ describe API::Features do it 'creates a feature with the given percentage if passed an integer' do post api("/features/#{feature_name}", admin), params: { value: '50' } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to eq( 'name' => 'my_feature', 'state' => 'conditional', @@ -223,7 +223,7 @@ describe API::Features do it 'enables the feature' do post api("/features/#{feature_name}", admin), params: { value: 'true' } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to eq( 'name' => 'my_feature', 'state' => 'on', @@ -233,7 +233,7 @@ describe API::Features do it 'enables the feature for the given Flipper group when passed feature_group=perf_team' do post api("/features/#{feature_name}", admin), params: { value: 'true', feature_group: 'perf_team' } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to eq( 'name' => 'my_feature', 'state' => 'conditional', @@ -246,7 +246,7 @@ describe API::Features do it 'enables the feature for the given user when passed user=username' do post api("/features/#{feature_name}", admin), params: { value: 'true', user: user.username } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to eq( 'name' => 'my_feature', 'state' => 'conditional', @@ -264,7 +264,7 @@ describe API::Features do post api("/features/#{feature_name}", admin), params: { value: 'false' } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to eq( 'name' => 'my_feature', 'state' => 'off', @@ -277,7 +277,7 @@ describe API::Features do post api("/features/#{feature_name}", admin), params: { value: 'false', feature_group: 'perf_team' } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to eq( 'name' => 'my_feature', 'state' => 'off', @@ -290,7 +290,7 @@ describe API::Features do post api("/features/#{feature_name}", admin), params: { value: 'false', user: user.username } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to eq( 'name' => 'my_feature', 'state' => 'off', @@ -306,7 +306,7 @@ describe API::Features do it 'updates the percentage of time if passed an integer' do post api("/features/#{feature_name}", admin), params: { value: '30' } - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response).to eq( 'name' => 'my_feature', 'state' => 'conditional', @@ -326,13 +326,13 @@ describe API::Features do it 'returns a 401 for anonymous users' do delete api("/features/#{feature_name}") - expect(response).to have_gitlab_http_status(401) + expect(response).to have_gitlab_http_status(:unauthorized) end it 'returns a 403 for users' do delete api("/features/#{feature_name}", user) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end @@ -340,7 +340,7 @@ describe API::Features do it 'returns 204 when the value is not set' do delete api("/features/#{feature_name}", admin) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end context 'when the gate value was set' do @@ -351,7 +351,7 @@ describe API::Features do it 'deletes an enabled feature' do delete api("/features/#{feature_name}", admin) - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) expect(Feature.get(feature_name)).not_to be_enabled end end diff --git a/spec/requests/api/files_spec.rb b/spec/requests/api/files_spec.rb index efad443de3f..3596647015c 100644 --- a/spec/requests/api/files_spec.rb +++ b/spec/requests/api/files_spec.rb @@ -58,7 +58,7 @@ describe API::Files do it 'returns file attributes in headers' do head api(route(file_path), current_user), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response.headers['X-Gitlab-File-Path']).to eq(CGI.unescape(file_path)) expect(response.headers['X-Gitlab-File-Name']).to eq('popen.rb') expect(response.headers['X-Gitlab-Last-Commit-Id']).to eq('570e7b2abdd848b95f2f578043fc23bd6f6fd24d') @@ -72,7 +72,7 @@ describe API::Files do head api(route(file_path), current_user), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response.headers['X-Gitlab-File-Name']).to eq('commit.js.coffee') expect(response.headers['X-Gitlab-Content-Sha256']).to eq('08785f04375b47f81f46e68cc125d5ef368aa20576ddb53f91f4d83f1d04b929') end @@ -81,7 +81,7 @@ describe API::Files do it "responds with a 400 status" do head api(route("any%2Ffile"), current_user) - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end end @@ -91,7 +91,7 @@ describe API::Files do head api(route('app%2Fmodels%2Fapplication%2Erb'), current_user), params: params - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end @@ -101,7 +101,7 @@ describe API::Files do it "responds with a 403 status" do head api(route(file_path), current_user), params: params - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end end end @@ -119,7 +119,7 @@ describe API::Files do head api(route(file_path), current_user), params: params - expect(response).to have_gitlab_http_status(404) + expect(response).to have_gitlab_http_status(:not_found) end end @@ -148,7 +148,7 @@ describe API::Files do it 'returns file attributes as json' do get api(route(file_path), current_user), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['file_path']).to eq(CGI.unescape(file_path)) expect(json_response['file_name']).to eq('popen.rb') expect(json_response['last_commit_id']).to eq('570e7b2abdd848b95f2f578043fc23bd6f6fd24d') @@ -161,7 +161,7 @@ describe API::Files do get api(route(file_path), current_user), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response.content_type).to eq('application/json') end @@ -172,7 +172,7 @@ describe API::Files do get api(route(file_path), current_user), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['file_name']).to eq('commit.js.coffee') expect(json_response['content_sha256']).to eq('08785f04375b47f81f46e68cc125d5ef368aa20576ddb53f91f4d83f1d04b929') expect(Base64.decode64(json_response['content']).lines.first).to eq("class Commit\n") @@ -184,7 +184,7 @@ describe API::Files do get api(url, current_user), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(headers[Gitlab::Workhorse::DETECT_HEADER]).to eq "true" end @@ -193,7 +193,7 @@ describe API::Files do get api(url, current_user), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end it 'sets inline content disposition by default' do @@ -294,7 +294,7 @@ describe API::Files do it 'returns file attributes in headers' do head api(route(file_path) + '/blame', current_user), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(response.headers['X-Gitlab-File-Path']).to eq(CGI.unescape(file_path)) expect(response.headers['X-Gitlab-File-Name']).to eq('popen.rb') expect(response.headers['X-Gitlab-Last-Commit-Id']).to eq('570e7b2abdd848b95f2f578043fc23bd6f6fd24d') @@ -305,7 +305,7 @@ describe API::Files do it 'returns blame file attributes as json' do get api(route(file_path) + '/blame', current_user), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response.map { |x| x['lines'].size }).to eq(expected_blame_range_sizes) expect(json_response.map { |x| x['commit']['id'] }).to eq(expected_blame_range_commit_ids) range = json_response[0] @@ -329,7 +329,7 @@ describe API::Files do get api(url, current_user), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end it 'returns file by commit sha' do @@ -339,7 +339,7 @@ describe API::Files do get api(route(file_path) + '/blame', current_user), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end context 'when mandatory params are not given' do @@ -411,7 +411,7 @@ describe API::Files do get api(route(file_path) + '/blame', personal_access_token: token), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end end end @@ -424,7 +424,7 @@ describe API::Files do get api(url, current_user), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end it 'returns raw file info for files with dots' do @@ -433,7 +433,7 @@ describe API::Files do get api(url, current_user), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end it 'returns file by commit sha' do @@ -444,7 +444,7 @@ describe API::Files do get api(route(file_path) + "/raw", current_user), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end it 'sets no-cache headers' do @@ -520,7 +520,7 @@ describe API::Files do get api(route(file_path) + "/raw", personal_access_token: token), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end end end @@ -538,7 +538,7 @@ describe API::Files do it "creates a new file in project repo" do post api(route(file_path), user), params: params - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response["file_path"]).to eq(CGI.unescape(file_path)) last_commit = project.repository.commit.raw expect(last_commit.author_email).to eq(user.email) @@ -548,7 +548,7 @@ describe API::Files do it "returns a 400 bad request if no mandatory params given" do post api(route("any%2Etxt"), user) - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end it 'returns a 400 bad request if the commit message is empty' do @@ -556,7 +556,7 @@ describe API::Files do post api(route(file_path), user), params: params - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end it "returns a 400 if editor fails to create file" do @@ -566,7 +566,7 @@ describe API::Files do post api(route("any%2Etxt"), user), params: params - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end context 'with PATs' do @@ -575,7 +575,7 @@ describe API::Files do post api(route(file_path), personal_access_token: token), params: params - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(:forbidden) end it 'returns 201 with `api` scope' do @@ -583,7 +583,7 @@ describe API::Files do post api(route(file_path), personal_access_token: token), params: params - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) end end @@ -593,7 +593,7 @@ describe API::Files do post api(route("new_file_with_author%2Etxt"), user), params: params - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(response.content_type).to eq('application/json') last_commit = project.repository.commit.raw expect(last_commit.author_email).to eq(author_email) @@ -607,7 +607,7 @@ describe API::Files do it "creates a new file in project repo" do post api(route("newfile%2Erb"), user), params: params - expect(response).to have_gitlab_http_status(201) + expect(response).to have_gitlab_http_status(:created) expect(json_response['file_path']).to eq('newfile.rb') last_commit = project.repository.commit.raw expect(last_commit.author_email).to eq(user.email) @@ -628,7 +628,7 @@ describe API::Files do it "updates existing file in project repo" do put api(route(file_path), user), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['file_path']).to eq(CGI.unescape(file_path)) last_commit = project.repository.commit.raw expect(last_commit.author_email).to eq(user.email) @@ -640,7 +640,7 @@ describe API::Files do put api(route(file_path), user), params: params - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end it "returns a 400 bad request if update existing file with stale last commit id" do @@ -648,7 +648,7 @@ describe API::Files do put api(route(file_path), user), params: params_with_stale_id - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) expect(json_response['message']).to eq(_('You are attempting to update a file that has changed since you started editing it.')) end @@ -659,13 +659,13 @@ describe API::Files do put api(route(file_path), user), params: params_with_correct_id - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) end it "returns a 400 bad request if no params given" do put api(route(file_path), user) - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end context "when specifying an author" do @@ -674,7 +674,7 @@ describe API::Files do put api(route(file_path), user), params: params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) last_commit = project.repository.commit.raw expect(last_commit.author_email).to eq(author_email) expect(last_commit.author_name).to eq(author_name) @@ -693,13 +693,13 @@ describe API::Files do it "deletes existing file in project repo" do delete api(route(file_path), user), params: params - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end it "returns a 400 bad request if no params given" do delete api(route(file_path), user) - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end it 'returns a 400 bad request if the commit message is empty' do @@ -707,7 +707,7 @@ describe API::Files do delete api(route(file_path), user), params: params - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end it "returns a 400 if fails to delete file" do @@ -717,7 +717,7 @@ describe API::Files do delete api(route(file_path), user), params: params - expect(response).to have_gitlab_http_status(400) + expect(response).to have_gitlab_http_status(:bad_request) end context "when specifying an author" do @@ -726,7 +726,7 @@ describe API::Files do delete api(route(file_path), user), params: params - expect(response).to have_gitlab_http_status(204) + expect(response).to have_gitlab_http_status(:no_content) end end end @@ -754,7 +754,7 @@ describe API::Files do it "remains unchanged" do get api(route(file_path), user), params: get_params - expect(response).to have_gitlab_http_status(200) + expect(response).to have_gitlab_http_status(:ok) expect(json_response['file_path']).to eq(CGI.unescape(file_path)) expect(json_response['file_name']).to eq(CGI.unescape(file_path)) expect(json_response['content']).to eq(put_params[:content]) diff --git a/spec/services/issues/close_service_spec.rb b/spec/services/issues/close_service_spec.rb index dce62d1d20e..eb3b1d7c754 100644 --- a/spec/services/issues/close_service_spec.rb +++ b/spec/services/issues/close_service_spec.rb @@ -98,6 +98,53 @@ describe Issues::CloseService do expect(body_text).not_to include(closing_merge_request.to_reference) end end + + context 'updating `metrics.first_mentioned_in_commit_at`' do + subject { described_class.new(project, user).close_issue(issue, closed_via: closing_merge_request) } + + context 'when `metrics.first_mentioned_in_commit_at` is not set' do + it 'uses the first commit timestamp' do + expected = closing_merge_request.commits.first.date + + subject + + expect(issue.metrics.first_mentioned_in_commit_at).to eq(expected) + end + end + + context 'when `metrics.first_mentioned_in_commit_at` is already set' do + before do + issue.metrics.update!(first_mentioned_in_commit_at: Time.now) + end + + it 'does not update the metrics' do + expect { subject }.not_to change { issue.metrics.first_mentioned_in_commit_at } + end + end + + context 'when merge request has no commits' do + let(:closing_merge_request) { create(:merge_request, :without_diffs, source_project: project) } + + it 'does not update the metrics' do + subject + + expect(issue.metrics.first_mentioned_in_commit_at).to be_nil + end + end + + context 'when `store_first_mentioned_in_commit_on_issue_close` feature flag is off' do + before do + stub_feature_flags(store_first_mentioned_in_commit_on_issue_close: { enabled: false, thing: issue.project }) + end + + it 'does not update the metrics' do + subject + + expect(described_class).not_to receive(:store_first_mentioned_in_commit_at) + expect(issue.metrics.first_mentioned_in_commit_at).to be_nil + end + end + end end context "closed by a commit", :sidekiq_might_not_need_inline do diff --git a/spec/services/merge_requests/merge_service_spec.rb b/spec/services/merge_requests/merge_service_spec.rb index 496b08799f2..6cc042e9a97 100644 --- a/spec/services/merge_requests/merge_service_spec.rb +++ b/spec/services/merge_requests/merge_service_spec.rb @@ -118,7 +118,7 @@ describe MergeRequests::MergeService do it 'closes GitLab issue tracker issues' do issue = create :issue, project: project - commit = double('commit', safe_message: "Fixes #{issue.to_reference}") + commit = double('commit', safe_message: "Fixes #{issue.to_reference}", date: Time.now) allow(merge_request).to receive(:commits).and_return([commit]) merge_request.cache_merge_request_closes_issues! diff --git a/spec/services/projects/alerting/notify_service_spec.rb b/spec/services/projects/alerting/notify_service_spec.rb index 925d323584e..289d812f498 100644 --- a/spec/services/projects/alerting/notify_service_spec.rb +++ b/spec/services/projects/alerting/notify_service_spec.rb @@ -25,7 +25,31 @@ describe Projects::Alerting::NotifyService do end end - shared_examples 'does not process incident issues' do |http_status:| + shared_examples 'sends notification email' do + let(:notification_service) { spy } + + it 'sends a notification for firing alerts only' do + expect(NotificationService) + .to receive(:new) + .and_return(notification_service) + + expect(notification_service) + .to receive_message_chain(:async, :prometheus_alerts_fired) + + expect(subject.status).to eq(:success) + end + end + + shared_examples 'does not process incident issues' do + it 'does not process issues' do + expect(IncidentManagement::ProcessAlertWorker) + .not_to receive(:perform_async) + + expect(subject.status).to eq(:success) + end + end + + shared_examples 'does not process incident issues due to error' do |http_status:| it 'does not process issues' do expect(IncidentManagement::ProcessAlertWorker) .not_to receive(:perform_async) @@ -54,31 +78,50 @@ describe Projects::Alerting::NotifyService do context 'with valid token' do let(:token) { alerts_service.token } + let(:incident_management_setting) { double(send_email?: email_enabled, create_issue?: issue_enabled) } + let(:email_enabled) { false } + let(:issue_enabled) { false } + + before do + allow(service) + .to receive(:incident_management_setting) + .and_return(incident_management_setting) + end + + it_behaves_like 'does not process incident issues' + + context 'issue enabled' do + let(:issue_enabled) { true } - context 'with a valid payload' do it_behaves_like 'processes incident issues', 1 - end - context 'with an invalid payload' do - before do - allow(Gitlab::Alerting::NotificationPayloadParser) - .to receive(:call) - .and_raise(Gitlab::Alerting::NotificationPayloadParser::BadPayloadError) + context 'with an invalid payload' do + before do + allow(Gitlab::Alerting::NotificationPayloadParser) + .to receive(:call) + .and_raise(Gitlab::Alerting::NotificationPayloadParser::BadPayloadError) + end + + it_behaves_like 'does not process incident issues due to error', http_status: 400 end + end + + context 'with emails turned on' do + let(:email_enabled) { true } - it_behaves_like 'does not process incident issues', http_status: 400 + it_behaves_like 'sends notification email' end end context 'with invalid token' do - it_behaves_like 'does not process incident issues', http_status: 401 + it_behaves_like 'does not process incident issues due to error', http_status: 401 end - end - context 'with deactivated Alerts Service' do - let!(:alerts_service) { create(:alerts_service, :inactive, project: project) } + context 'with deactivated Alerts Service' do + let!(:alerts_service) { create(:alerts_service, :inactive, project: project) } - it_behaves_like 'does not process incident issues', http_status: 403 + it_behaves_like 'does not process incident issues due to error', http_status: 403 + end end end end |