Commit f7dae0cd authored by GitLab Bot's avatar GitLab Bot

Add latest changes from gitlab-org/gitlab@master

parent b98fa9ef
...@@ -349,8 +349,8 @@ RSpec/HaveGitlabHttpStatus: ...@@ -349,8 +349,8 @@ RSpec/HaveGitlabHttpStatus:
- 'ee/spec/requests/{groups,projects,repositories}/**/*' - 'ee/spec/requests/{groups,projects,repositories}/**/*'
- 'spec/requests/api/*/**/*.rb' - 'spec/requests/api/*/**/*.rb'
- 'ee/spec/requests/api/*/**/*.rb' - 'ee/spec/requests/api/*/**/*.rb'
- 'spec/requests/api/[a-f]*.rb' - 'spec/requests/api/[a-l]*.rb'
- 'ee/spec/requests/api/[a-f]*.rb' - 'ee/spec/requests/api/[a-l]*.rb'
Style/MultilineWhenThen: Style/MultilineWhenThen:
Enabled: false Enabled: false
......
...@@ -159,7 +159,7 @@ gem 'escape_utils', '~> 1.1' ...@@ -159,7 +159,7 @@ gem 'escape_utils', '~> 1.1'
gem 'icalendar' gem 'icalendar'
# Diffs # Diffs
gem 'diffy', '~> 3.1.0' gem 'diffy', '~> 3.3'
gem 'diff_match_patch', '~> 0.1.0' gem 'diff_match_patch', '~> 0.1.0'
# Application server # Application server
......
...@@ -237,7 +237,7 @@ GEM ...@@ -237,7 +237,7 @@ GEM
rotp (~> 2.0) rotp (~> 2.0)
diff-lcs (1.3) diff-lcs (1.3)
diff_match_patch (0.1.0) diff_match_patch (0.1.0)
diffy (3.1.0) diffy (3.3.0)
discordrb-webhooks-blackst0ne (3.3.0) discordrb-webhooks-blackst0ne (3.3.0)
rest-client (~> 2.0) rest-client (~> 2.0)
docile (1.3.1) docile (1.3.1)
...@@ -1195,7 +1195,7 @@ DEPENDENCIES ...@@ -1195,7 +1195,7 @@ DEPENDENCIES
devise (~> 4.6) devise (~> 4.6)
devise-two-factor (~> 3.1.0) devise-two-factor (~> 3.1.0)
diff_match_patch (~> 0.1.0) diff_match_patch (~> 0.1.0)
diffy (~> 3.1.0) diffy (~> 3.3)
discordrb-webhooks-blackst0ne (~> 3.3) discordrb-webhooks-blackst0ne (~> 3.3)
doorkeeper (~> 5.0.2) doorkeeper (~> 5.0.2)
doorkeeper-openid_connect (~> 1.6.3) doorkeeper-openid_connect (~> 1.6.3)
......
import Vue from 'vue';
import ConfirmModal from '~/vue_shared/components/confirm_modal.vue';
const mountConfirmModal = button => {
const props = {
path: button.dataset.path,
method: button.dataset.method,
modalAttributes: JSON.parse(button.dataset.modalAttributes),
};
return new Vue({
render(h) {
return h(ConfirmModal, { props });
},
}).$mount();
};
export default () => {
document.getElementsByClassName('js-confirm-modal-button').forEach(button => {
button.addEventListener('click', e => {
e.preventDefault();
mountConfirmModal(button);
});
});
};
...@@ -259,8 +259,15 @@ export default function dropzoneInput(form) { ...@@ -259,8 +259,15 @@ export default function dropzoneInput(form) {
const insertToTextArea = (filename, url) => { const insertToTextArea = (filename, url) => {
const $child = $(child); const $child = $(child);
$child.val((index, val) => val.replace(`{{${filename}}}`, url)); const textarea = $child.get(0);
const caretStart = textarea.selectionStart;
const caretEnd = textarea.selectionEnd;
const formattedText = `{{${filename}}}`;
$child.val((index, val) => val.replace(formattedText, url));
textarea.setSelectionRange(
caretStart - formattedText.length + url.length,
caretEnd - formattedText.length + url.length,
);
$child.trigger('change'); $child.trigger('change');
}; };
......
...@@ -175,6 +175,7 @@ export const localTimeAgo = ($timeagoEls, setTimeago = true) => { ...@@ -175,6 +175,7 @@ export const localTimeAgo = ($timeagoEls, setTimeago = true) => {
function addTimeAgoTooltip() { function addTimeAgoTooltip() {
$timeagoEls.each((i, el) => { $timeagoEls.each((i, el) => {
// Recreate with custom template // Recreate with custom template
el.setAttribute('title', formatDate(el.dateTime));
$(el).tooltip({ $(el).tooltip({
template: template:
'<div class="tooltip local-timeago" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>', '<div class="tooltip local-timeago" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',
......
...@@ -169,6 +169,10 @@ const bindEvents = () => { ...@@ -169,6 +169,10 @@ const bindEvents = () => {
text: s__('ProjectTemplates|Go Micro'), text: s__('ProjectTemplates|Go Micro'),
icon: '.template-option .icon-gomicro', icon: '.template-option .icon-gomicro',
}, },
gatsby: {
text: s__('ProjectTemplates|Pages/Gatsby'),
icon: '.template-option .icon-gatsby',
},
hugo: { hugo: {
text: s__('ProjectTemplates|Pages/Hugo'), text: s__('ProjectTemplates|Pages/Hugo'),
icon: '.template-option .icon-hugo', icon: '.template-option .icon-hugo',
......
<script>
import { GlModal } from '@gitlab/ui';
import csrf from '~/lib/utils/csrf';
export default {
components: {
GlModal,
},
props: {
modalAttributes: {
type: Object,
required: true,
},
path: {
type: String,
required: true,
},
method: {
type: String,
required: true,
},
},
data() {
return {
isDismissed: false,
};
},
mounted() {
this.openModal();
},
methods: {
openModal() {
this.$refs.modal.show();
},
submitModal() {
this.$refs.form.requestSubmit();
},
dismiss() {
this.isDismissed = true;
},
},
csrf,
};
</script>
<template>
<gl-modal
v-if="!isDismissed"
ref="modal"
v-bind="modalAttributes"
@primary="submitModal"
@canceled="dismiss"
>
<form ref="form" :action="path" method="post">
<!-- Rails workaround for <form method="delete" />
https://github.com/rails/rails/blob/master/actionview/app/assets/javascripts/rails-ujs/features/method.coffee
-->
<input type="hidden" name="_method" :value="method" />
<input type="hidden" name="authenticity_token" :value="$options.csrf.token" />
<div>{{ modalAttributes.message }}</div>
</form>
</gl-modal>
</template>
...@@ -17,12 +17,6 @@ ...@@ -17,12 +17,6 @@
.tree-controls { .tree-controls {
text-align: right; text-align: right;
> .btn,
.project-action-button > .btn,
.git-clone-holder > .btn {
margin-left: 8px;
}
.control { .control {
float: left; float: left;
margin-left: 10px; margin-left: 10px;
......
...@@ -45,6 +45,12 @@ ...@@ -45,6 +45,12 @@
.border-bottom-color-default { border-bottom-color: $border-color; } .border-bottom-color-default { border-bottom-color: $border-color; }
.box-shadow-default { box-shadow: 0 2px 4px 0 $black-transparent; } .box-shadow-default { box-shadow: 0 2px 4px 0 $black-transparent; }
.gl-children-ml-sm-3 > * {
@include media-breakpoint-up(sm) {
@include gl-ml-3;
}
}
.mh-50vh { max-height: 50vh; } .mh-50vh { max-height: 50vh; }
.font-size-inherit { font-size: inherit; } .font-size-inherit { font-size: inherit; }
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
- else - else
= link_to title, project_tree_path(@project, tree_join(@ref, path)) = link_to title, project_tree_path(@project, tree_join(@ref, path))
.tree-controls< .tree-controls.gl-children-ml-sm-3<
= render 'projects/find_file_link' = render 'projects/find_file_link'
-# only show normal/blame view links for text files -# only show normal/blame view links for text files
- if blob.readable_text? - if blob.readable_text?
......
...@@ -29,8 +29,7 @@ ...@@ -29,8 +29,7 @@
":title" => "buttonText", ":title" => "buttonText",
":ref" => "'button'" } ":ref" => "'button'" }
= icon('spin spinner', 'v-if' => 'loading', class: 'loading', 'aria-hidden' => 'true', 'aria-label' => 'Loading') %div
%div{ 'v-else' => '' }
%template{ 'v-if' => 'isResolved' } %template{ 'v-if' => 'isResolved' }
= render 'shared/icons/icon_status_success_solid.svg' = render 'shared/icons/icon_status_success_solid.svg'
%template{ 'v-else' => '' } %template{ 'v-else' => '' }
...@@ -40,7 +39,6 @@ ...@@ -40,7 +39,6 @@
- if note.emoji_awardable? - if note.emoji_awardable?
.note-actions-item .note-actions-item
= button_tag title: 'Add reaction', class: "note-action-button note-emoji-button js-add-award js-note-emoji has-tooltip btn btn-transparent", data: { position: 'right', container: 'body' } do = button_tag title: 'Add reaction', class: "note-action-button note-emoji-button js-add-award js-note-emoji has-tooltip btn btn-transparent", data: { position: 'right', container: 'body' } do
= icon('spinner spin')
%span{ class: 'link-highlight award-control-icon-neutral' }= sprite_icon('slight-smile') %span{ class: 'link-highlight award-control-icon-neutral' }= sprite_icon('slight-smile')
%span{ class: 'link-highlight award-control-icon-positive' }= sprite_icon('smiley') %span{ class: 'link-highlight award-control-icon-positive' }= sprite_icon('smiley')
%span{ class: 'link-highlight award-control-icon-super-positive' }= sprite_icon('smile') %span{ class: 'link-highlight award-control-icon-super-positive' }= sprite_icon('smile')
......
...@@ -75,34 +75,35 @@ ...@@ -75,34 +75,35 @@
= link_to new_project_tag_path(@project) do = link_to new_project_tag_path(@project) do
#{ _('New tag') } #{ _('New tag') }
.tree-controls{ class: ("gl-font-size-0" if vue_file_list_enabled?) }< .tree-controls
= render_if_exists 'projects/tree/lock_link' .d-block.d-sm-flex.flex-wrap.align-items-start.gl-children-ml-sm-3<
- if vue_file_list_enabled? = render_if_exists 'projects/tree/lock_link'
#js-tree-history-link.d-inline-block{ data: { history_link: project_commits_path(@project, @ref) } }
- else
= link_to s_('Commits|History'), project_commits_path(@project, @id), class: 'btn'
= render 'projects/find_file_link'
- if can_collaborate || current_user&.already_forked?(@project)
- if vue_file_list_enabled? - if vue_file_list_enabled?
#js-tree-web-ide-link.d-inline-block #js-tree-history-link.d-inline-block{ data: { history_link: project_commits_path(@project, @ref) } }
- else - else
= link_to ide_edit_path(@project, @ref, @path), class: 'btn btn-default qa-web-ide-button' do = link_to s_('Commits|History'), project_commits_path(@project, @id), class: 'btn'
= render 'projects/find_file_link'
- if can_collaborate || current_user&.already_forked?(@project)
- if vue_file_list_enabled?
#js-tree-web-ide-link.d-inline-block
- else
= link_to ide_edit_path(@project, @ref, @path), class: 'btn btn-default qa-web-ide-button' do
= _('Web IDE')
- elsif can_create_mr_from_fork
= link_to '#modal-confirm-fork', class: 'btn btn-default qa-web-ide-button', data: { target: '#modal-confirm-fork', toggle: 'modal'} do
= _('Web IDE') = _('Web IDE')
- elsif can_create_mr_from_fork = render 'shared/confirm_fork_modal', fork_path: ide_fork_and_edit_path(@project, @ref, @path)
= link_to '#modal-confirm-fork', class: 'btn btn-default qa-web-ide-button', data: { target: '#modal-confirm-fork', toggle: 'modal'} do
= _('Web IDE')
= render 'shared/confirm_fork_modal', fork_path: ide_fork_and_edit_path(@project, @ref, @path)
- if show_xcode_link?(@project) - if show_xcode_link?(@project)
.project-action-button.project-xcode.inline< .project-action-button.project-xcode.inline<
= render "projects/buttons/xcode_link" = render "projects/buttons/xcode_link"
= render 'projects/buttons/download', project: @project, ref: @ref = render 'projects/buttons/download', project: @project, ref: @ref
.project-clone-holder.d-block.d-md-none.mt-sm-2.mt-md-0> .project-clone-holder.d-none.d-md-inline-block>
= render "shared/mobile_clone_panel" = render "projects/buttons/clone", dropdown_class: 'dropdown-menu-right'
.project-clone-holder.d-none.d-md-inline-block> .project-clone-holder.d-block.d-md-none.mt-sm-2.mt-md-0.ml-sm-2>
= render "projects/buttons/clone", dropdown_class: 'dropdown-menu-right' = render "shared/mobile_clone_panel"
---
title: Fix Web IDE fork modal showing no text
merge_request: 25842
author:
type: fixed
---
title: Fix project setting approval input in non-sequential order
merge_request: 25391
author:
type: fixed
---
title: Remove spinner from app/views/projects/notes
merge_request: 25015
author: nuwe1
type: other
---
title: Add Project template for Gatsby
merge_request: 25486
author:
type: added
---
title: Fixes caret position after pasting an image 15011
merge_request: 21382
author: Carolina Carvalhosa
type: fixed
---
title: Fix timezones for popovers.
merge_request: 24942
author:
type: fixed
...@@ -200,11 +200,18 @@ by the `gitlab:artifacts:migrate` script. ...@@ -200,11 +200,18 @@ by the `gitlab:artifacts:migrate` script.
### Migrating from object storage to local storage ### Migrating from object storage to local storage
**In Omnibus installations:**
In order to migrate back to local storage: In order to migrate back to local storage:
1. Set both `direct_upload` and `background_upload` to false under the artifacts object storage settings. Don't forget to restart GitLab. 1. Set both `direct_upload` and `background_upload` to false in `gitlab.rb`, under the artifacts object storage settings.
1. Run `rake gitlab:artifacts:migrate_to_local` on your console. 1. [reconfigure GitLab][].
1. Disable `object_storage` for artifacts in `gitlab.rb`. Remember to restart GitLab afterwards. 1. Run `gitlab-rake gitlab:artifacts:migrate_to_local`.
1. Disable object_storage for artifacts in `gitlab.rb`:
- Set `gitlab_rails['artifacts_object_store_enabled'] = false`.
- Comment out all other `artifacts_object_store` settings, including the entire
`artifacts_object_store_connection` section, including the closing `}`.
1. [reconfigure GitLab][].
## Expiring artifacts ## Expiring artifacts
......
...@@ -118,7 +118,31 @@ button.addEventListener('click', () => { ...@@ -118,7 +118,31 @@ button.addEventListener('click', () => {
## Tests and test helpers ## Tests and test helpers
In Karma tests, you can use the following: In Jest particularly in vue tests, you can use the following:
```javascript
import { mockTracking } from 'helpers/tracking_helper';
describe('MyTracking', () => {
let spy;
beforeEach(() => {
spy = mockTracking('_category_', wrapper.element, jest.spyOn);
});
it('tracks an event when clicked on feedback', () => {
wrapper.find('.discover-feedback-icon').trigger('click');
expect(spy).toHaveBeenCalledWith('_category_', 'click_button', {
label: 'security-discover-feedback-cta',
property: '0',
});
});
});
```
In obsolete Karma tests it's used as below:
```javascript ```javascript
import { mockTracking, triggerEvent } from 'spec/helpers/tracking_helper'; import { mockTracking, triggerEvent } from 'spec/helpers/tracking_helper';
......
...@@ -30,7 +30,7 @@ instances (GitLab Core, Starter, Premium, and Ultimate). ...@@ -30,7 +30,7 @@ instances (GitLab Core, Starter, Premium, and Ultimate).
<div class="col-md-9"> <div class="col-md-9">
<p style="margin-top: 18px;"> <p style="margin-top: 18px;">
To publish a website with Pages, you can use any Static Site Generator (SSG), To publish a website with Pages, you can use any Static Site Generator (SSG),
such as Jekyll, Hugo, Middleman, Harp, Hexo, and Brunch, just to name a few. You can also such as Gatsby, Jekyll, Hugo, Middleman, Harp, Hexo, and Brunch, just to name a few. You can also
publish any website written directly in plain HTML, CSS, and JavaScript.</p> publish any website written directly in plain HTML, CSS, and JavaScript.</p>
<p>Pages does <strong>not</strong> support dynamic server-side processing, for instance, as <code>.php</code> and <code>.asp</code> requires. See this article to learn more about <p>Pages does <strong>not</strong> support dynamic server-side processing, for instance, as <code>.php</code> and <code>.asp</code> requires. See this article to learn more about
<a href="https://about.gitlab.com/blog/2016/06/03/ssg-overview-gitlab-pages-part-1-dynamic-x-static/">static websites vs dynamic websites</a>.</p> <a href="https://about.gitlab.com/blog/2016/06/03/ssg-overview-gitlab-pages-part-1-dynamic-x-static/">static websites vs dynamic websites</a>.</p>
......
...@@ -182,9 +182,14 @@ If **Public pipelines** is disabled: ...@@ -182,9 +182,14 @@ If **Public pipelines** is disabled:
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/9362) in GitLab 9.1. > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/9362) in GitLab 9.1.
If you want to auto-cancel all pending non-HEAD pipelines on branch, when If you want all pending non-HEAD pipelines on branches to auto-cancel each time
new pipeline will be created (after your Git push or manually from UI), a new pipeline is created, such as after a Git push or manually from the UI,
check **Auto-cancel pending pipelines** checkbox and save the changes. you can enable this in the project settings:
1. Go to **{settings}** **Settings > CI / CD**.
1. Expand **General Pipelines**.
1. Check the **Auto-cancel redundant, pending pipelines** checkbox.
1. Click **Save changes**.
## Pipeline Badges ## Pipeline Badges
......
...@@ -44,6 +44,7 @@ module Gitlab ...@@ -44,6 +44,7 @@ module Gitlab
ProjectTemplate.new('dotnetcore', '.NET Core', _('A .NET Core console application template, customizable for any .NET Core project'), 'https://gitlab.com/gitlab-org/project-templates/dotnetcore', 'illustrations/logos/dotnet.svg'), ProjectTemplate.new('dotnetcore', '.NET Core', _('A .NET Core console application template, customizable for any .NET Core project'), 'https://gitlab.com/gitlab-org/project-templates/dotnetcore', 'illustrations/logos/dotnet.svg'),
ProjectTemplate.new('android', 'Android', _('A ready-to-go template for use with Android apps.'), 'https://gitlab.com/gitlab-org/project-templates/android', 'illustrations/logos/android.svg'), ProjectTemplate.new('android', 'Android', _('A ready-to-go template for use with Android apps.'), 'https://gitlab.com/gitlab-org/project-templates/android', 'illustrations/logos/android.svg'),
ProjectTemplate.new('gomicro', 'Go Micro', _('Go Micro is a framework for micro service development.'), 'https://gitlab.com/gitlab-org/project-templates/go-micro'), ProjectTemplate.new('gomicro', 'Go Micro', _('Go Micro is a framework for micro service development.'), 'https://gitlab.com/gitlab-org/project-templates/go-micro'),
ProjectTemplate.new('gatsby', 'Pages/Gatsby', _('Everything you need to create a GitLab Pages site using Gatsby.'), 'https://gitlab.com/pages/gatsby'),
ProjectTemplate.new('hugo', 'Pages/Hugo', _('Everything you need to create a GitLab Pages site using Hugo.'), 'https://gitlab.com/pages/hugo'), ProjectTemplate.new('hugo', 'Pages/Hugo', _('Everything you need to create a GitLab Pages site using Hugo.'), 'https://gitlab.com/pages/hugo'),
ProjectTemplate.new('jekyll', 'Pages/Jekyll', _('Everything you need to create a GitLab Pages site using Jekyll.'), 'https://gitlab.com/pages/jekyll'), ProjectTemplate.new('jekyll', 'Pages/Jekyll', _('Everything you need to create a GitLab Pages site using Jekyll.'), 'https://gitlab.com/pages/jekyll'),
ProjectTemplate.new('plainhtml', 'Pages/Plain HTML', _('Everything you need to create a GitLab Pages site using plain HTML.'), 'https://gitlab.com/pages/plain-html'), ProjectTemplate.new('plainhtml', 'Pages/Plain HTML', _('Everything you need to create a GitLab Pages site using plain HTML.'), 'https://gitlab.com/pages/plain-html'),
......
...@@ -7924,6 +7924,9 @@ msgstr "" ...@@ -7924,6 +7924,9 @@ msgstr ""
msgid "Everything on your to-do list is marked as done." msgid "Everything on your to-do list is marked as done."
msgstr "" msgstr ""
msgid "Everything you need to create a GitLab Pages site using Gatsby."
msgstr ""
msgid "Everything you need to create a GitLab Pages site using GitBook." msgid "Everything you need to create a GitLab Pages site using GitBook."
msgstr "" msgstr ""
...@@ -15206,6 +15209,9 @@ msgstr "" ...@@ -15206,6 +15209,9 @@ msgstr ""
msgid "ProjectTemplates|NodeJS Express" msgid "ProjectTemplates|NodeJS Express"
msgstr "" msgstr ""
msgid "ProjectTemplates|Pages/Gatsby"
msgstr ""
msgid "ProjectTemplates|Pages/GitBook" msgid "ProjectTemplates|Pages/GitBook"
msgstr "" msgstr ""
...@@ -18558,6 +18564,9 @@ msgstr "" ...@@ -18558,6 +18564,9 @@ msgstr ""
msgid "Subscription deletion failed." msgid "Subscription deletion failed."
msgstr "" msgstr ""
msgid "Subscription successfully applied to \"%{group_name}\""
msgstr ""
msgid "Subscription successfully created." msgid "Subscription successfully created."
msgstr "" msgstr ""
......
...@@ -37,6 +37,7 @@ describe 'Environments page', :js do ...@@ -37,6 +37,7 @@ describe 'Environments page', :js do
expect(page).to have_css('.environments-container') expect(page).to have_css('.environments-container')
expect(page.all('.environment-name').length).to eq(1) expect(page.all('.environment-name').length).to eq(1)
expect(page.all('.ic-stop').length).to eq(1)
end end
end end
...@@ -105,6 +106,7 @@ describe 'Environments page', :js do ...@@ -105,6 +106,7 @@ describe 'Environments page', :js do
expect(page).to have_css('.environments-container') expect(page).to have_css('.environments-container')
expect(page.all('.environment-name').length).to eq(1) expect(page.all('.environment-name').length).to eq(1)
expect(page.all('.ic-stop').length).to eq(0)
end end
end end
end end
......
import Vue from 'vue';
import initConfirmModal from '~/confirm_modal';
import { TEST_HOST } from 'helpers/test_constants';
describe('ConfirmModal', () => {
const buttons = [
{
path: `${TEST_HOST}/1`,
method: 'delete',
modalAttributes: {
modalId: 'geo-entry-removal-modal',
title: 'Remove tracking database entry',
message: 'Tracking database entry will be removed. Are you sure?',
okVariant: 'danger',
okTitle: 'Remove entry',
},
},
{
path: `${TEST_HOST}/1`,
method: 'post',
modalAttributes: {
modalId: 'geo-entry-removal-modal',
title: 'Update tracking database entry',
message: 'Tracking database entry will be updated. Are you sure?',
okVariant: 'success',
okTitle: 'Update entry',
},
},
];
beforeEach(() => {
const buttonContainer = document.createElement('div');
buttons.forEach(x => {
const button = document.createElement('button');
button.setAttribute('class', 'js-confirm-modal-button');
button.setAttribute('data-path', x.path);
button.setAttribute('data-method', x.method);
button.setAttribute('data-modal-attributes', JSON.stringify(x.modalAttributes));
button.innerHTML = 'Action';
buttonContainer.appendChild(button);
});
document.body.appendChild(buttonContainer);
});
afterEach(() => {
document.body.innerHTML = '';
});
const findJsHooks = () => document.querySelectorAll('.js-confirm-modal-button');
const findModal = () => document.querySelector('.gl-modal');
const findModalOkButton = (modal, variant) =>
modal.querySelector(`.modal-footer .btn-${variant}`);
const findModalCancelButton = modal => modal.querySelector('.modal-footer .btn-secondary');
const serializeModal = (modal, buttonIndex) => {
const { modalAttributes } = buttons[buttonIndex];
return {
path: modal.querySelector('form').action,
method: modal.querySelector('input[name="_method"]').value,
modalAttributes: {
modalId: modal.id,
title: modal.querySelector('.modal-title').innerHTML,
message: modal.querySelector('.modal-body div').innerHTML,
okVariant: [...findModalOkButton(modal, modalAttributes.okVariant).classList]
.find(x => x.match('btn-'))
.replace('btn-', ''),
okTitle: findModalOkButton(modal, modalAttributes.okVariant).innerHTML,
},
};
};
it('starts with only JsHooks', () => {
expect(findJsHooks()).toHaveLength(buttons.length);
expect(findModal()).not.toExist();
});
describe('when button clicked', () => {
beforeEach(() => {
initConfirmModal();
findJsHooks()
.item(0)
.click();
});
it('does not replace JsHook with GlModal', () => {
expect(findJsHooks()).toHaveLength(buttons.length);
});
describe('GlModal', () => {
it('is rendered', () => {
expect(findModal()).toExist();
});
describe('Cancel Button', () => {
beforeEach(() => {
findModalCancelButton(findModal()).click();
return Vue.nextTick();
});
it('closes the modal', () => {
expect(findModal()).not.toExist();
});
});
});
});
describe.each`
index
${0}
${1}
`(`when multiple buttons exist`, ({ index }) => {
beforeEach(() => {
initConfirmModal();
findJsHooks()
.item(index)
.click();
});
it('correct props are passed to gl-modal', () => {
expect(serializeModal(findModal(), index)).toEqual(buttons[index]);
});
});
});
import { __, s__ } from '~/locale'; import { __, s__ } from '~/locale';
import $ from 'jquery';
import '~/commons/bootstrap';
import * as datetimeUtility from '~/lib/utils/datetime_utility'; import * as datetimeUtility from '~/lib/utils/datetime_utility';
describe('Date time utils', () => { describe('Date time utils', () => {
...@@ -563,3 +565,23 @@ describe('approximateDuration', () => { ...@@ -563,3 +565,23 @@ describe('approximateDuration', () => {
expect(datetimeUtility.approximateDuration(seconds)).toBe(approximation); expect(datetimeUtility.approximateDuration(seconds)).toBe(approximation);
}); });
}); });
describe('localTimeAgo', () => {
beforeEach(() => {
document.body.innerHTML = `<time title="some time" datetime="2020-02-18T22:22:32Z">1 hour ago</time>`;
});
it.each`
timeagoArg | title | dataOriginalTitle
${false} | ${'some time'} | ${null}
${true} | ${''} | ${'Feb 18, 2020 10:22pm GMT+0000'}
`('converts $seconds seconds to $approximation', ({ timeagoArg, title, dataOriginalTitle }) => {
const element = document.querySelector('time');
datetimeUtility.localTimeAgo($(element), timeagoArg);
jest.runAllTimers();
expect(element.getAttribute('data-original-title')).toBe(dataOriginalTitle);
expect(element.getAttribute('title')).toBe(title);
});
});
import { shallowMount } from '@vue/test-utils';
import { GlModal } from '@gitlab/ui';
import { TEST_HOST } from 'helpers/test_constants';
import ConfirmModal from '~/vue_shared/components/confirm_modal.vue';
describe('vue_shared/components/confirm_modal', () => {
const testModalProps = {
path: `${TEST_HOST}/1`,
method: 'delete',
modalAttributes: {
modalId: 'test-confirm-modal',
title: 'Are you sure?',
message: 'This will remove item 1',
okVariant: 'danger',
okTitle: 'Remove item',
},
};
const actionSpies = {
openModal: jest.fn(),
};
let wrapper;
const createComponent = (props = {}) => {
wrapper = shallowMount(ConfirmModal, {
propsData: {
...testModalProps,
...props,
},
methods: {
...actionSpies,
},
});
};
afterEach(() => {
wrapper.destroy();
});
const findModal = () => wrapper.find(GlModal);
describe('template', () => {
beforeEach(() => {
createComponent();
});
it('calls openModal on mount', () => {
expect(actionSpies.openModal).toHaveBeenCalled();
});
it('renders GlModal', () => {
expect(findModal().exists()).toBeTruthy();
});
});
describe('methods', () => {
beforeEach(() => {
createComponent();
});
describe('submitModal', () => {
beforeEach(() => {
wrapper.vm.$refs.form.requestSubmit = jest.fn();
});
it('calls requestSubmit', () => {
wrapper.vm.submitModal();
expect(wrapper.vm.$refs.form.requestSubmit).toHaveBeenCalled();
});
});
describe('dismiss', () => {
it('removes gl-modal', () => {
expect(findModal().exists()).toBeTruthy();
wrapper.vm.dismiss();
return wrapper.vm.$nextTick(() => {
expect(findModal().exists()).toBeFalsy();
});
});
});
});
});
...@@ -13,6 +13,7 @@ describe Gitlab::ProjectTemplate do ...@@ -13,6 +13,7 @@ describe Gitlab::ProjectTemplate do
described_class.new('dotnetcore', '.NET Core', 'A .NET Core console application template, customizable for any .NET Core project', 'https://gitlab.com/gitlab-org/project-templates/dotnetcore'), described_class.new('dotnetcore', '.NET Core', 'A .NET Core console application template, customizable for any .NET Core project', 'https://gitlab.com/gitlab-org/project-templates/dotnetcore'),
described_class.new('android', 'Android', 'A ready-to-go template for use with Android apps.', 'https://gitlab.com/gitlab-org/project-templates/android'), described_class.new('android', 'Android', 'A ready-to-go template for use with Android apps.', 'https://gitlab.com/gitlab-org/project-templates/android'),
described_class.new('gomicro', 'Go Micro', 'Go Micro is a framework for micro service development.', 'https://gitlab.com/gitlab-org/project-templates/go-micro'), described_class.new('gomicro', 'Go Micro', 'Go Micro is a framework for micro service development.', 'https://gitlab.com/gitlab-org/project-templates/go-micro'),
described_class.new('gatsby', 'Pages/Gatsby', 'Everything you need to get started using a Gatsby site.', 'https://gitlab.com/pages/gatsby'),
described_class.new('hugo', 'Pages/Hugo', 'Everything you need to get started using a Hugo Pages site.', 'https://gitlab.com/pages/hugo'), described_class.new('hugo', 'Pages/Hugo', 'Everything you need to get started using a Hugo Pages site.', 'https://gitlab.com/pages/hugo'),
described_class.new('jekyll', 'Pages/Jekyll', 'Everything you need to get started using a Jekyll Pages site.', 'https://gitlab.com/pages/jekyll'), described_class.new('jekyll', 'Pages/Jekyll', 'Everything you need to get started using a Jekyll Pages site.', 'https://gitlab.com/pages/jekyll'),
described_class.new('plainhtml', 'Pages/Plain HTML', 'Everything you need to get started using a plain HTML Pages site.', 'https://gitlab.com/pages/plain-html'), described_class.new('plainhtml', 'Pages/Plain HTML', 'Everything you need to get started using a plain HTML Pages site.', 'https://gitlab.com/pages/plain-html'),
......
...@@ -58,7 +58,7 @@ describe 'GraphQL' do ...@@ -58,7 +58,7 @@ describe 'GraphQL' do
it 'returns an error' do it 'returns an error' do
post_graphql(query, variables: "This is not JSON") post_graphql(query, variables: "This is not JSON")
expect(response).to have_gitlab_http_status(422) expect(response).to have_gitlab_http_status(:unprocessable_entity)
expect(json_response['errors'].first['message']).not_to be_nil expect(json_response['errors'].first['message']).not_to be_nil
end end
end end
...@@ -114,7 +114,7 @@ describe 'GraphQL' do ...@@ -114,7 +114,7 @@ describe 'GraphQL' do
post_graphql(query, headers: { 'PRIVATE-TOKEN' => token.token }) post_graphql(query, headers: { 'PRIVATE-TOKEN' => token.token })
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(graphql_data['echo']).to eq('nil says: Hello world') expect(graphql_data['echo']).to eq('nil says: Hello world')
end end
......
...@@ -50,7 +50,7 @@ describe API::GroupBoards do ...@@ -50,7 +50,7 @@ describe API::GroupBoards do
post api(url, user), params: { label_id: project_label.id } post api(url, user), params: { label_id: project_label.id }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
end end
end end
...@@ -26,7 +26,7 @@ describe API::GroupClusters do ...@@ -26,7 +26,7 @@ describe API::GroupClusters do
it 'responds with 403' do it 'responds with 403' do
get api("/groups/#{group.id}/clusters", developer_user) get api("/groups/#{group.id}/clusters", developer_user)
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
...@@ -36,7 +36,7 @@ describe API::GroupClusters do ...@@ -36,7 +36,7 @@ describe API::GroupClusters do
end end
it 'responds with 200' do it 'responds with 200' do
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
end end
it 'includes pagination headers' do it 'includes pagination headers' do
...@@ -70,7 +70,7 @@ describe API::GroupClusters do ...@@ -70,7 +70,7 @@ describe API::GroupClusters do
it 'responds with 403' do it 'responds with 403' do
get api("/groups/#{group.id}/clusters/#{cluster_id}", developer_user) get api("/groups/#{group.id}/clusters/#{cluster_id}", developer_user)
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
...@@ -140,7 +140,7 @@ describe API::GroupClusters do ...@@ -140,7 +140,7 @@ describe API::GroupClusters do
let(:cluster_id) { 123 } let(:cluster_id) { 123 }
it 'returns 404' do it 'returns 404' do
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
...@@ -179,7 +179,7 @@ describe API::GroupClusters do ...@@ -179,7 +179,7 @@ describe API::GroupClusters do
it 'responds with 403' do it 'responds with 403' do
post api("/groups/#{group.id}/clusters/user", developer_user), params: cluster_params post api("/groups/#{group.id}/clusters/user", developer_user), params: cluster_params
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
...@@ -190,7 +190,7 @@ describe API::GroupClusters do ...@@ -190,7 +190,7 @@ describe API::GroupClusters do
context 'with valid params' do context 'with valid params' do
it 'responds with 201' do it 'responds with 201' do
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
end end
it 'creates a new Cluster::Cluster' do it 'creates a new Cluster::Cluster' do
...@@ -238,7 +238,7 @@ describe API::GroupClusters do ...@@ -238,7 +238,7 @@ describe API::GroupClusters do
let(:api_url) { 'invalid_api_url' } let(:api_url) { 'invalid_api_url' }
it 'responds with 400' do it 'responds with 400' do
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
it 'does not create a new Clusters::Cluster' do it 'does not create a new Clusters::Cluster' do
...@@ -260,7 +260,7 @@ describe API::GroupClusters do ...@@ -260,7 +260,7 @@ describe API::GroupClusters do
end end
it 'responds with 400' do it 'responds with 400' do
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['message']['base'].first).to eq(_('Instance does not support multiple Kubernetes clusters')) expect(json_response['message']['base'].first).to eq(_('Instance does not support multiple Kubernetes clusters'))
end end
end end
...@@ -271,7 +271,7 @@ describe API::GroupClusters do ...@@ -271,7 +271,7 @@ describe API::GroupClusters do
end end
it 'responds with 403' do it 'responds with 403' do
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
expect(json_response['message']).to eq('403 Forbidden') expect(json_response['message']).to eq('403 Forbidden')
end end
...@@ -305,7 +305,7 @@ describe API::GroupClusters do ...@@ -305,7 +305,7 @@ describe API::GroupClusters do
it 'responds with 403' do it 'responds with 403' do
put api("/groups/#{group.id}/clusters/#{cluster.id}", developer_user), params: update_params put api("/groups/#{group.id}/clusters/#{cluster.id}", developer_user), params: update_params
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
...@@ -320,7 +320,7 @@ describe API::GroupClusters do ...@@ -320,7 +320,7 @@ describe API::GroupClusters do
context 'with valid params' do context 'with valid params' do
it 'responds with 200' do it 'responds with 200' do
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
end end
it 'updates cluster attributes' do it 'updates cluster attributes' do
...@@ -333,7 +333,7 @@ describe API::GroupClusters do ...@@ -333,7 +333,7 @@ describe API::GroupClusters do
let(:domain) { 'invalid domain' } let(:domain) { 'invalid domain' }
it 'responds with 400' do it 'responds with 400' do
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
it 'does not update cluster attributes' do it 'does not update cluster attributes' do
...@@ -350,7 +350,7 @@ describe API::GroupClusters do ...@@ -350,7 +350,7 @@ describe API::GroupClusters do
let(:management_project_id) { create(:project).id } let(:management_project_id) { create(:project).id }
it 'responds with 400' do it 'responds with 400' do
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
it 'returns validation errors' do it 'returns validation errors' do
...@@ -368,7 +368,7 @@ describe API::GroupClusters do ...@@ -368,7 +368,7 @@ describe API::GroupClusters do
end end
it 'responds with 400' do it 'responds with 400' do
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
it 'returns validation error' do it 'returns validation error' do
...@@ -380,7 +380,7 @@ describe API::GroupClusters do ...@@ -380,7 +380,7 @@ describe API::GroupClusters do
let(:domain) { 'new-domain.com' } let(:domain) { 'new-domain.com' }
it 'responds with 200' do it 'responds with 200' do
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
end end
end end
end end
...@@ -408,7 +408,7 @@ describe API::GroupClusters do ...@@ -408,7 +408,7 @@ describe API::GroupClusters do
end end
it 'responds with 200' do it 'responds with 200' do
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
end end
it 'updates platform kubernetes attributes' do it 'updates platform kubernetes attributes' do
...@@ -424,7 +424,7 @@ describe API::GroupClusters do ...@@ -424,7 +424,7 @@ describe API::GroupClusters do
let(:cluster) { create(:cluster, :group, :provided_by_user) } let(:cluster) { create(:cluster, :group, :provided_by_user) }
it 'responds with 404' do it 'responds with 404' do
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
...@@ -442,7 +442,7 @@ describe API::GroupClusters do ...@@ -442,7 +442,7 @@ describe API::GroupClusters do
it 'responds with 403' do it 'responds with 403' do
delete api("/groups/#{group.id}/clusters/#{cluster.id}", developer_user), params: cluster_params delete api("/groups/#{group.id}/clusters/#{cluster.id}", developer_user), params: cluster_params
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
...@@ -452,7 +452,7 @@ describe API::GroupClusters do ...@@ -452,7 +452,7 @@ describe API::GroupClusters do
end end
it 'responds with 204' do it 'responds with 204' do
expect(response).to have_gitlab_http_status(204) expect(response).to have_gitlab_http_status(:no_content)
end end
it 'deletes the cluster' do it 'deletes the cluster' do
...@@ -463,7 +463,7 @@ describe API::GroupClusters do ...@@ -463,7 +463,7 @@ describe API::GroupClusters do
let(:cluster) { create(:cluster, :group, :provided_by_user) } let(:cluster) { create(:cluster, :group, :provided_by_user) }
it 'responds with 404' do it 'responds with 404' do
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
......
...@@ -44,7 +44,7 @@ describe API::GroupExport do ...@@ -44,7 +44,7 @@ describe API::GroupExport do
it 'downloads exported group archive' do it 'downloads exported group archive' do
get api(download_path, user) get api(download_path, user)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
end end
context 'when export_file.file does not exist' do context 'when export_file.file does not exist' do
...@@ -57,7 +57,7 @@ describe API::GroupExport do ...@@ -57,7 +57,7 @@ describe API::GroupExport do
it 'returns 404' do it 'returns 404' do
get api(download_path, user) get api(download_path, user)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
...@@ -66,7 +66,7 @@ describe API::GroupExport do ...@@ -66,7 +66,7 @@ describe API::GroupExport do
it 'returns 404' do it 'returns 404' do
get api(download_path, user) get api(download_path, user)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
...@@ -79,7 +79,7 @@ describe API::GroupExport do ...@@ -79,7 +79,7 @@ describe API::GroupExport do
it 'responds with 404 Not Found' do it 'responds with 404 Not Found' do
get api(download_path, user) get api(download_path, user)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
...@@ -98,7 +98,7 @@ describe API::GroupExport do ...@@ -98,7 +98,7 @@ describe API::GroupExport do
it 'accepts download' do it 'accepts download' do
post api(path, user) post api(path, user)
expect(response).to have_gitlab_http_status(202) expect(response).to have_gitlab_http_status(:accepted)
end end
end end
...@@ -110,7 +110,7 @@ describe API::GroupExport do ...@@ -110,7 +110,7 @@ describe API::GroupExport do
it 'forbids the request' do it 'forbids the request' do
post api(path, user) post api(path, user)
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
end end
...@@ -123,7 +123,7 @@ describe API::GroupExport do ...@@ -123,7 +123,7 @@ describe API::GroupExport do
it 'responds with 404 Not Found' do it 'responds with 404 Not Found' do
post api(path, user) post api(path, user)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
......
...@@ -42,7 +42,7 @@ describe API::GroupImport do ...@@ -42,7 +42,7 @@ describe API::GroupImport do
it 'creates new group and accepts request' do it 'creates new group and accepts request' do
subject subject
expect(response).to have_gitlab_http_status(202) expect(response).to have_gitlab_http_status(:accepted)
end end
it 'creates private group' do it 'creates private group' do
...@@ -63,7 +63,7 @@ describe API::GroupImport do ...@@ -63,7 +63,7 @@ describe API::GroupImport do
subject subject
expect(response).to have_gitlab_http_status(202) expect(response).to have_gitlab_http_status(:accepted)
expect(group.children.count).to eq(1) expect(group.children.count).to eq(1)
end end
...@@ -81,7 +81,7 @@ describe API::GroupImport do ...@@ -81,7 +81,7 @@ describe API::GroupImport do
subject subject
expect(response).to have_gitlab_http_status(202) expect(response).to have_gitlab_http_status(:accepted)
expect(public_parent_group.children.first.visibility_level).to eq(Gitlab::VisibilityLevel::PUBLIC) expect(public_parent_group.children.first.visibility_level).to eq(Gitlab::VisibilityLevel::PUBLIC)
end end
...@@ -90,7 +90,7 @@ describe API::GroupImport do ...@@ -90,7 +90,7 @@ describe API::GroupImport do
subject subject
expect(response).to have_gitlab_http_status(202) expect(response).to have_gitlab_http_status(:accepted)
expect(internal_parent_group.children.first.visibility_level).to eq(Gitlab::VisibilityLevel::INTERNAL) expect(internal_parent_group.children.first.visibility_level).to eq(Gitlab::VisibilityLevel::INTERNAL)
end end
end end
...@@ -101,7 +101,7 @@ describe API::GroupImport do ...@@ -101,7 +101,7 @@ describe API::GroupImport do
expect { subject }.not_to change { Group.count } expect { subject }.not_to change { Group.count }
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
expect(json_response['message']).to eq('404 Group Not Found') expect(json_response['message']).to eq('404 Group Not Found')
end end
...@@ -111,7 +111,7 @@ describe API::GroupImport do ...@@ -111,7 +111,7 @@ describe API::GroupImport do
subject subject
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
expect(json_response['message']).to eq('403 Forbidden') expect(json_response['message']).to eq('403 Forbidden')
end end
end end
...@@ -128,7 +128,7 @@ describe API::GroupImport do ...@@ -128,7 +128,7 @@ describe API::GroupImport do
it 'returns 400 HTTP status' do it 'returns 400 HTTP status' do
subject subject
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
end end
end end
...@@ -139,7 +139,7 @@ describe API::GroupImport do ...@@ -139,7 +139,7 @@ describe API::GroupImport do
it 'forbids the request' do it 'forbids the request' do
subject subject
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
end end
...@@ -154,7 +154,7 @@ describe API::GroupImport do ...@@ -154,7 +154,7 @@ describe API::GroupImport do
post api('/groups/import', user), params: params, headers: workhorse_header post api('/groups/import', user), params: params, headers: workhorse_header
end.not_to change { Group.count }.from(1) end.not_to change { Group.count }.from(1)
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['error']).to eq(error_message) expect(json_response['error']).to eq(error_message)
end end
end end
......
...@@ -15,7 +15,7 @@ describe API::GroupLabels do ...@@ -15,7 +15,7 @@ describe API::GroupLabels do
it 'returns all available labels for the group' do it 'returns all available labels for the group' do
get api("/groups/#{group.id}/labels", user) get api("/groups/#{group.id}/labels", user)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response).to all(match_schema('public_api/v4/labels/label')) expect(json_response).to all(match_schema('public_api/v4/labels/label'))
...@@ -27,7 +27,7 @@ describe API::GroupLabels do ...@@ -27,7 +27,7 @@ describe API::GroupLabels do
it 'includes counts in the response' do it 'includes counts in the response' do
get api("/groups/#{group.id}/labels", user), params: { with_counts: true } get api("/groups/#{group.id}/labels", user), params: { with_counts: true }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response).to all(match_schema('public_api/v4/labels/label_with_counts')) expect(json_response).to all(match_schema('public_api/v4/labels/label_with_counts'))
...@@ -42,7 +42,7 @@ describe API::GroupLabels do ...@@ -42,7 +42,7 @@ describe API::GroupLabels do
it 'returns all available labels for the group and ancestor groups' do it 'returns all available labels for the group and ancestor groups' do
get api("/groups/#{subgroup.id}/labels", user) get api("/groups/#{subgroup.id}/labels", user)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response).to all(match_schema('public_api/v4/labels/label')) expect(json_response).to all(match_schema('public_api/v4/labels/label'))
...@@ -55,7 +55,7 @@ describe API::GroupLabels do ...@@ -55,7 +55,7 @@ describe API::GroupLabels do
it 'returns all available labels for the group but not for ancestor groups' do it 'returns all available labels for the group but not for ancestor groups' do
get api("/groups/#{subgroup.id}/labels", user), params: { include_ancestor_groups: false } get api("/groups/#{subgroup.id}/labels", user), params: { include_ancestor_groups: false }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response).to all(match_schema('public_api/v4/labels/label')) expect(json_response).to all(match_schema('public_api/v4/labels/label'))
...@@ -69,7 +69,7 @@ describe API::GroupLabels do ...@@ -69,7 +69,7 @@ describe API::GroupLabels do
it 'returns a single label for the group' do it 'returns a single label for the group' do
get api("/groups/#{group.id}/labels/#{group_label1.name}", user) get api("/groups/#{group.id}/labels/#{group_label1.name}", user)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['name']).to eq(group_label1.name) expect(json_response['name']).to eq(group_label1.name)
expect(json_response['color']).to eq(group_label1.color) expect(json_response['color']).to eq(group_label1.color)
expect(json_response['description']).to eq(group_label1.description) expect(json_response['description']).to eq(group_label1.description)
...@@ -85,7 +85,7 @@ describe API::GroupLabels do ...@@ -85,7 +85,7 @@ describe API::GroupLabels do
description: 'test' description: 'test'
} }
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(json_response['name']).to eq('Foo') expect(json_response['name']).to eq('Foo')
expect(json_response['color']).to eq('#FFAABB') expect(json_response['color']).to eq('#FFAABB')
expect(json_response['description']).to eq('test') expect(json_response['description']).to eq('test')
...@@ -107,13 +107,13 @@ describe API::GroupLabels do ...@@ -107,13 +107,13 @@ describe API::GroupLabels do
it 'returns a 400 bad request if name not given' do it 'returns a 400 bad request if name not given' do
post api("/groups/#{group.id}/labels", user), params: { color: '#FFAABB' } post api("/groups/#{group.id}/labels", user), params: { color: '#FFAABB' }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
it 'returns a 400 bad request if color is not given' do it 'returns a 400 bad request if color is not given' do
post api("/groups/#{group.id}/labels", user), params: { name: 'Foobar' } post api("/groups/#{group.id}/labels", user), params: { name: 'Foobar' }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
it 'returns 409 if label already exists' do it 'returns 409 if label already exists' do
...@@ -123,7 +123,7 @@ describe API::GroupLabels do ...@@ -123,7 +123,7 @@ describe API::GroupLabels do
color: '#FFAABB' color: '#FFAABB'
} }
expect(response).to have_gitlab_http_status(409) expect(response).to have_gitlab_http_status(:conflict)
expect(json_response['message']).to eq('Label already exists') expect(json_response['message']).to eq('Label already exists')
end end
end end
...@@ -132,20 +132,20 @@ describe API::GroupLabels do ...@@ -132,20 +132,20 @@ describe API::GroupLabels do
it 'returns 204 for existing label' do it 'returns 204 for existing label' do
delete api("/groups/#{group.id}/labels", user), params: { name: group_label1.name } delete api("/groups/#{group.id}/labels", user), params: { name: group_label1.name }
expect(response).to have_gitlab_http_status(204) expect(response).to have_gitlab_http_status(:no_content)
end end
it 'returns 404 for non existing label' do it 'returns 404 for non existing label' do
delete api("/groups/#{group.id}/labels", user), params: { name: 'not_exists' } delete api("/groups/#{group.id}/labels", user), params: { name: 'not_exists' }
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
expect(json_response['message']).to eq('404 Label Not Found') expect(json_response['message']).to eq('404 Label Not Found')
end end
it 'returns 400 for wrong parameters' do it 'returns 400 for wrong parameters' do
delete api("/groups/#{group.id}/labels", user) delete api("/groups/#{group.id}/labels", user)
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
it "does not delete parent's group labels" do it "does not delete parent's group labels" do
...@@ -154,7 +154,7 @@ describe API::GroupLabels do ...@@ -154,7 +154,7 @@ describe API::GroupLabels do
delete api("/groups/#{subgroup.id}/labels", user), params: { name: subgroup_label.name } delete api("/groups/#{subgroup.id}/labels", user), params: { name: subgroup_label.name }
expect(response).to have_gitlab_http_status(204) expect(response).to have_gitlab_http_status(:no_content)
expect(subgroup.labels.size).to eq(0) expect(subgroup.labels.size).to eq(0)
expect(group.labels).to include(group_label1) expect(group.labels).to include(group_label1)
end end
...@@ -169,13 +169,13 @@ describe API::GroupLabels do ...@@ -169,13 +169,13 @@ describe API::GroupLabels do
it 'returns 204 for existing label' do it 'returns 204 for existing label' do
delete api("/groups/#{group.id}/labels/#{group_label1.name}", user) delete api("/groups/#{group.id}/labels/#{group_label1.name}", user)
expect(response).to have_gitlab_http_status(204) expect(response).to have_gitlab_http_status(:no_content)
end end
it 'returns 404 for non existing label' do it 'returns 404 for non existing label' do
delete api("/groups/#{group.id}/labels/not_exists", user) delete api("/groups/#{group.id}/labels/not_exists", 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 Label Not Found') expect(json_response['message']).to eq('404 Label Not Found')
end end
...@@ -185,7 +185,7 @@ describe API::GroupLabels do ...@@ -185,7 +185,7 @@ describe API::GroupLabels do
delete api("/groups/#{subgroup.id}/labels/#{subgroup_label.name}", user) delete api("/groups/#{subgroup.id}/labels/#{subgroup_label.name}", user)
expect(response).to have_gitlab_http_status(204) expect(response).to have_gitlab_http_status(:no_content)
expect(subgroup.labels.size).to eq(0) expect(subgroup.labels.size).to eq(0)
expect(group.labels).to include(group_label1) expect(group.labels).to include(group_label1)
end end
...@@ -205,7 +205,7 @@ describe API::GroupLabels do ...@@ -205,7 +205,7 @@ describe API::GroupLabels do
description: 'test' description: 'test'
} }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['name']).to eq('New Label') expect(json_response['name']).to eq('New Label')
expect(json_response['color']).to eq('#FFFFFF') expect(json_response['color']).to eq('#FFFFFF')
expect(json_response['description']).to eq('test') expect(json_response['description']).to eq('test')
...@@ -221,7 +221,7 @@ describe API::GroupLabels do ...@@ -221,7 +221,7 @@ describe API::GroupLabels do
new_name: 'New Label' new_name: 'New Label'
} }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(subgroup.labels[0].name).to eq('New Label') expect(subgroup.labels[0].name).to eq('New Label')
expect(group_label1.name).to eq('feature') expect(group_label1.name).to eq('feature')
end end
...@@ -233,20 +233,20 @@ describe API::GroupLabels do ...@@ -233,20 +233,20 @@ describe API::GroupLabels do
new_name: 'label3' new_name: 'label3'
} }
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
it 'returns 400 if no label name given' do it 'returns 400 if no label name given' do
put api("/groups/#{group.id}/labels", user), params: { new_name: group_label1.name } put api("/groups/#{group.id}/labels", user), params: { new_name: group_label1.name }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['error']).to eq('label_id, name are missing, exactly one parameter must be provided') expect(json_response['error']).to eq('label_id, name are missing, exactly one parameter must be provided')
end end
it 'returns 400 if no new parameters given' do it 'returns 400 if no new parameters given' do
put api("/groups/#{group.id}/labels", user), params: { name: group_label1.name } put api("/groups/#{group.id}/labels", user), params: { name: group_label1.name }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['error']).to eq('new_name, color, description are missing, '\ expect(json_response['error']).to eq('new_name, color, description are missing, '\
'at least one parameter must be provided') 'at least one parameter must be provided')
end end
...@@ -261,7 +261,7 @@ describe API::GroupLabels do ...@@ -261,7 +261,7 @@ describe API::GroupLabels do
description: 'test' description: 'test'
} }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['name']).to eq('New Label') expect(json_response['name']).to eq('New Label')
expect(json_response['color']).to eq('#FFFFFF') expect(json_response['color']).to eq('#FFFFFF')
expect(json_response['description']).to eq('test') expect(json_response['description']).to eq('test')
...@@ -276,7 +276,7 @@ describe API::GroupLabels do ...@@ -276,7 +276,7 @@ describe API::GroupLabels do
new_name: 'New Label' new_name: 'New Label'
} }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(subgroup.labels[0].name).to eq('New Label') expect(subgroup.labels[0].name).to eq('New Label')
expect(group_label1.name).to eq('feature') expect(group_label1.name).to eq('feature')
end end
...@@ -287,13 +287,13 @@ describe API::GroupLabels do ...@@ -287,13 +287,13 @@ describe API::GroupLabels do
new_name: 'label3' new_name: 'label3'
} }
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
it 'returns 400 if no new parameters given' do it 'returns 400 if no new parameters given' do
put api("/groups/#{group.id}/labels/#{group_label1.name}", user) put api("/groups/#{group.id}/labels/#{group_label1.name}", user)
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['error']).to eq('new_name, color, description are missing, '\ expect(json_response['error']).to eq('new_name, color, description are missing, '\
'at least one parameter must be provided') 'at least one parameter must be provided')
end end
...@@ -304,7 +304,7 @@ describe API::GroupLabels do ...@@ -304,7 +304,7 @@ describe API::GroupLabels do
it 'subscribes to the label' do it 'subscribes to the label' do
post api("/groups/#{group.id}/labels/#{group_label1.title}/subscribe", user) post api("/groups/#{group.id}/labels/#{group_label1.title}/subscribe", user)
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(json_response['name']).to eq(group_label1.title) expect(json_response['name']).to eq(group_label1.title)
expect(json_response['subscribed']).to be_truthy expect(json_response['subscribed']).to be_truthy
end end
...@@ -314,7 +314,7 @@ describe API::GroupLabels do ...@@ -314,7 +314,7 @@ describe API::GroupLabels do
it 'subscribes to the label' do it 'subscribes to the label' do
post api("/groups/#{group.id}/labels/#{group_label1.id}/subscribe", user) post api("/groups/#{group.id}/labels/#{group_label1.id}/subscribe", user)
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(json_response['name']).to eq(group_label1.title) expect(json_response['name']).to eq(group_label1.title)
expect(json_response['subscribed']).to be_truthy expect(json_response['subscribed']).to be_truthy
end end
...@@ -328,7 +328,7 @@ describe API::GroupLabels do ...@@ -328,7 +328,7 @@ describe API::GroupLabels do
it 'returns 304' do it 'returns 304' do
post api("/groups/#{group.id}/labels/#{group_label1.id}/subscribe", user) post api("/groups/#{group.id}/labels/#{group_label1.id}/subscribe", user)
expect(response).to have_gitlab_http_status(304) expect(response).to have_gitlab_http_status(:not_modified)
end end
end end
...@@ -336,7 +336,7 @@ describe API::GroupLabels do ...@@ -336,7 +336,7 @@ describe API::GroupLabels do
it 'returns 404 error' do it 'returns 404 error' do
post api("/groups/#{group.id}/labels/1234/subscribe", user) post api("/groups/#{group.id}/labels/1234/subscribe", user)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
...@@ -350,7 +350,7 @@ describe API::GroupLabels do ...@@ -350,7 +350,7 @@ describe API::GroupLabels do
it 'unsubscribes from the label' do it 'unsubscribes from the label' do
post api("/groups/#{group.id}/labels/#{group_label1.title}/unsubscribe", user) post api("/groups/#{group.id}/labels/#{group_label1.title}/unsubscribe", user)
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(json_response['name']).to eq(group_label1.title) expect(json_response['name']).to eq(group_label1.title)
expect(json_response['subscribed']).to be_falsey expect(json_response['subscribed']).to be_falsey
end end
...@@ -360,7 +360,7 @@ describe API::GroupLabels do ...@@ -360,7 +360,7 @@ describe API::GroupLabels do
it 'unsubscribes from the label' do it 'unsubscribes from the label' do
post api("/groups/#{group.id}/labels/#{group_label1.id}/unsubscribe", user) post api("/groups/#{group.id}/labels/#{group_label1.id}/unsubscribe", user)
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(json_response['name']).to eq(group_label1.title) expect(json_response['name']).to eq(group_label1.title)
expect(json_response['subscribed']).to be_falsey expect(json_response['subscribed']).to be_falsey
end end
...@@ -374,7 +374,7 @@ describe API::GroupLabels do ...@@ -374,7 +374,7 @@ describe API::GroupLabels do
it 'returns 304' do it 'returns 304' do
post api("/groups/#{group.id}/labels/#{group_label1.id}/unsubscribe", user) post api("/groups/#{group.id}/labels/#{group_label1.id}/unsubscribe", user)
expect(response).to have_gitlab_http_status(304) expect(response).to have_gitlab_http_status(:not_modified)
end end
end end
...@@ -382,7 +382,7 @@ describe API::GroupLabels do ...@@ -382,7 +382,7 @@ describe API::GroupLabels do
it 'returns 404 error' do it 'returns 404 error' do
post api("/groups/#{group.id}/labels/1234/unsubscribe", user) post api("/groups/#{group.id}/labels/1234/unsubscribe", user)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
......
...@@ -17,7 +17,7 @@ describe API::GroupVariables do ...@@ -17,7 +17,7 @@ describe API::GroupVariables do
it 'returns group variables' do it 'returns group variables' do
get api("/groups/#{group.id}/variables", user) get api("/groups/#{group.id}/variables", user)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response).to be_a(Array) expect(json_response).to be_a(Array)
end end
end end
...@@ -26,7 +26,7 @@ describe API::GroupVariables do ...@@ -26,7 +26,7 @@ describe API::GroupVariables do
it 'does not return group variables' do it 'does not return group variables' do
get api("/groups/#{group.id}/variables", user) get api("/groups/#{group.id}/variables", user)
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
...@@ -34,7 +34,7 @@ describe API::GroupVariables do ...@@ -34,7 +34,7 @@ describe API::GroupVariables do
it 'does not return group variables' do it 'does not return group variables' do
get api("/groups/#{group.id}/variables") get api("/groups/#{group.id}/variables")
expect(response).to have_gitlab_http_status(401) expect(response).to have_gitlab_http_status(:unauthorized)
end end
end end
end end
...@@ -50,7 +50,7 @@ describe API::GroupVariables do ...@@ -50,7 +50,7 @@ describe API::GroupVariables do
it 'returns group variable details' do it 'returns group variable details' do
get api("/groups/#{group.id}/variables/#{variable.key}", user) get api("/groups/#{group.id}/variables/#{variable.key}", user)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['value']).to eq(variable.value) expect(json_response['value']).to eq(variable.value)
expect(json_response['protected']).to eq(variable.protected?) expect(json_response['protected']).to eq(variable.protected?)
expect(json_response['variable_type']).to eq(variable.variable_type) expect(json_response['variable_type']).to eq(variable.variable_type)
...@@ -59,7 +59,7 @@ describe API::GroupVariables do ...@@ -59,7 +59,7 @@ describe API::GroupVariables do
it 'responds with 404 Not Found if requesting non-existing variable' do it 'responds with 404 Not Found if requesting non-existing variable' do
get api("/groups/#{group.id}/variables/non_existing_variable", user) get api("/groups/#{group.id}/variables/non_existing_variable", user)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
...@@ -67,7 +67,7 @@ describe API::GroupVariables do ...@@ -67,7 +67,7 @@ describe API::GroupVariables do
it 'does not return group variable details' do it 'does not return group variable details' do
get api("/groups/#{group.id}/variables/#{variable.key}", user) get api("/groups/#{group.id}/variables/#{variable.key}", user)
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
...@@ -75,7 +75,7 @@ describe API::GroupVariables do ...@@ -75,7 +75,7 @@ describe API::GroupVariables do
it 'does not return group variable details' do it 'does not return group variable details' do
get api("/groups/#{group.id}/variables/#{variable.key}") get api("/groups/#{group.id}/variables/#{variable.key}")
expect(response).to have_gitlab_http_status(401) expect(response).to have_gitlab_http_status(:unauthorized)
end end
end end
end end
...@@ -93,7 +93,7 @@ describe API::GroupVariables do ...@@ -93,7 +93,7 @@ describe API::GroupVariables do
post api("/groups/#{group.id}/variables", user), params: { key: 'TEST_VARIABLE_2', value: 'PROTECTED_VALUE_2', protected: true, masked: true } post api("/groups/#{group.id}/variables", user), params: { key: 'TEST_VARIABLE_2', value: 'PROTECTED_VALUE_2', protected: true, masked: true }
end.to change {group.variables.count}.by(1) end.to change {group.variables.count}.by(1)
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(json_response['key']).to eq('TEST_VARIABLE_2') expect(json_response['key']).to eq('TEST_VARIABLE_2')
expect(json_response['value']).to eq('PROTECTED_VALUE_2') expect(json_response['value']).to eq('PROTECTED_VALUE_2')
expect(json_response['protected']).to be_truthy expect(json_response['protected']).to be_truthy
...@@ -106,7 +106,7 @@ describe API::GroupVariables do ...@@ -106,7 +106,7 @@ describe API::GroupVariables do
post api("/groups/#{group.id}/variables", user), params: { variable_type: 'file', key: 'TEST_VARIABLE_2', value: 'VALUE_2' } post api("/groups/#{group.id}/variables", user), params: { variable_type: 'file', key: 'TEST_VARIABLE_2', value: 'VALUE_2' }
end.to change {group.variables.count}.by(1) end.to change {group.variables.count}.by(1)
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(json_response['key']).to eq('TEST_VARIABLE_2') expect(json_response['key']).to eq('TEST_VARIABLE_2')
expect(json_response['value']).to eq('VALUE_2') expect(json_response['value']).to eq('VALUE_2')
expect(json_response['protected']).to be_falsey expect(json_response['protected']).to be_falsey
...@@ -119,7 +119,7 @@ describe API::GroupVariables do ...@@ -119,7 +119,7 @@ describe API::GroupVariables do
post api("/groups/#{group.id}/variables", user), params: { key: variable.key, value: 'VALUE_2' } post api("/groups/#{group.id}/variables", user), params: { key: variable.key, value: 'VALUE_2' }
end.to change {group.variables.count}.by(0) end.to change {group.variables.count}.by(0)
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
end end
...@@ -127,7 +127,7 @@ describe API::GroupVariables do ...@@ -127,7 +127,7 @@ describe API::GroupVariables do
it 'does not create variable' do it 'does not create variable' do
post api("/groups/#{group.id}/variables", user) post api("/groups/#{group.id}/variables", user)
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
...@@ -135,7 +135,7 @@ describe API::GroupVariables do ...@@ -135,7 +135,7 @@ describe API::GroupVariables do
it 'does not create variable' do it 'does not create variable' do
post api("/groups/#{group.id}/variables") post api("/groups/#{group.id}/variables")
expect(response).to have_gitlab_http_status(401) expect(response).to have_gitlab_http_status(:unauthorized)
end end
end end
end end
...@@ -156,7 +156,7 @@ describe API::GroupVariables do ...@@ -156,7 +156,7 @@ describe API::GroupVariables do
updated_variable = group.variables.reload.first updated_variable = group.variables.reload.first
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(value_before).to eq(variable.value) expect(value_before).to eq(variable.value)
expect(updated_variable.value).to eq('VALUE_1_UP') expect(updated_variable.value).to eq('VALUE_1_UP')
expect(updated_variable).to be_protected expect(updated_variable).to be_protected
...@@ -167,7 +167,7 @@ describe API::GroupVariables do ...@@ -167,7 +167,7 @@ describe API::GroupVariables do
it 'responds with 404 Not Found if requesting non-existing variable' do it 'responds with 404 Not Found if requesting non-existing variable' do
put api("/groups/#{group.id}/variables/non_existing_variable", user) put api("/groups/#{group.id}/variables/non_existing_variable", user)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
...@@ -175,7 +175,7 @@ describe API::GroupVariables do ...@@ -175,7 +175,7 @@ describe API::GroupVariables do
it 'does not update variable' do it 'does not update variable' do
put api("/groups/#{group.id}/variables/#{variable.key}", user) put api("/groups/#{group.id}/variables/#{variable.key}", user)
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
...@@ -183,7 +183,7 @@ describe API::GroupVariables do ...@@ -183,7 +183,7 @@ describe API::GroupVariables do
it 'does not update variable' do it 'does not update variable' do
put api("/groups/#{group.id}/variables/#{variable.key}") put api("/groups/#{group.id}/variables/#{variable.key}")
expect(response).to have_gitlab_http_status(401) expect(response).to have_gitlab_http_status(:unauthorized)
end end
end end
end end
...@@ -200,14 +200,14 @@ describe API::GroupVariables do ...@@ -200,14 +200,14 @@ describe API::GroupVariables do
expect do expect do
delete api("/groups/#{group.id}/variables/#{variable.key}", user) delete api("/groups/#{group.id}/variables/#{variable.key}", user)
expect(response).to have_gitlab_http_status(204) expect(response).to have_gitlab_http_status(:no_content)
end.to change {group.variables.count}.by(-1) end.to change {group.variables.count}.by(-1)
end end
it 'responds with 404 Not Found if requesting non-existing variable' do it 'responds with 404 Not Found if requesting non-existing variable' do
delete api("/groups/#{group.id}/variables/non_existing_variable", user) delete api("/groups/#{group.id}/variables/non_existing_variable", user)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
it_behaves_like '412 response' do it_behaves_like '412 response' do
...@@ -219,7 +219,7 @@ describe API::GroupVariables do ...@@ -219,7 +219,7 @@ describe API::GroupVariables do
it 'does not delete variable' do it 'does not delete variable' do
delete api("/groups/#{group.id}/variables/#{variable.key}", user) delete api("/groups/#{group.id}/variables/#{variable.key}", user)
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
...@@ -227,7 +227,7 @@ describe API::GroupVariables do ...@@ -227,7 +227,7 @@ describe API::GroupVariables do
it 'does not delete variable' do it 'does not delete variable' do
delete api("/groups/#{group.id}/variables/#{variable.key}") delete api("/groups/#{group.id}/variables/#{variable.key}")
expect(response).to have_gitlab_http_status(401) expect(response).to have_gitlab_http_status(:unauthorized)
end end
end end
end end
......
...@@ -26,7 +26,7 @@ describe API::Groups do ...@@ -26,7 +26,7 @@ describe API::Groups do
it "returns public groups" do it "returns public groups" do
get api("/groups") get api("/groups")
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response.length).to eq(1) expect(json_response.length).to eq(1)
...@@ -54,7 +54,7 @@ describe API::Groups do ...@@ -54,7 +54,7 @@ describe API::Groups do
it "normal user: returns an array of groups of user1" do it "normal user: returns an array of groups of user1" do
get api("/groups", user1) get api("/groups", user1)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response.length).to eq(1) expect(json_response.length).to eq(1)
...@@ -65,7 +65,7 @@ describe API::Groups do ...@@ -65,7 +65,7 @@ describe API::Groups do
it "does not include runners_token information" do it "does not include runners_token information" do
get api("/groups", user1) get api("/groups", user1)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response.length).to eq(1) expect(json_response.length).to eq(1)
...@@ -75,7 +75,7 @@ describe API::Groups do ...@@ -75,7 +75,7 @@ describe API::Groups do
it "does not include statistics" do it "does not include statistics" do
get api("/groups", user1), params: { statistics: true } get api("/groups", user1), params: { statistics: true }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response.first).not_to include 'statistics' expect(json_response.first).not_to include 'statistics'
...@@ -86,7 +86,7 @@ describe API::Groups do ...@@ -86,7 +86,7 @@ describe API::Groups do
it "admin: returns an array of all groups" do it "admin: returns an array of all groups" do
get api("/groups", admin) get api("/groups", admin)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response.length).to eq(2) expect(json_response.length).to eq(2)
...@@ -95,7 +95,7 @@ describe API::Groups do ...@@ -95,7 +95,7 @@ describe API::Groups do
it "does not include runners_token information" do it "does not include runners_token information" do
get api("/groups", admin) get api("/groups", admin)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response.length).to eq(2) expect(json_response.length).to eq(2)
...@@ -105,7 +105,7 @@ describe API::Groups do ...@@ -105,7 +105,7 @@ describe API::Groups do
it "does not include statistics by default" do it "does not include statistics by default" do
get api("/groups", admin) get api("/groups", admin)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response.first).not_to include('statistics') expect(json_response.first).not_to include('statistics')
...@@ -126,7 +126,7 @@ describe API::Groups do ...@@ -126,7 +126,7 @@ describe API::Groups do
get api("/groups", admin), params: { statistics: true } get api("/groups", admin), params: { statistics: true }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response) expect(json_response)
...@@ -138,7 +138,7 @@ describe API::Groups do ...@@ -138,7 +138,7 @@ describe API::Groups do
it "returns all groups excluding skipped groups" do it "returns all groups excluding skipped groups" do
get api("/groups", admin), params: { skip_groups: [group2.id] } get api("/groups", admin), params: { skip_groups: [group2.id] }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response.length).to eq(1) expect(json_response.length).to eq(1)
...@@ -153,7 +153,7 @@ describe API::Groups do ...@@ -153,7 +153,7 @@ describe API::Groups do
get api("/groups", user1), params: { all_available: true } get api("/groups", user1), params: { all_available: true }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(response_groups).to contain_exactly(public_group.name, group1.name) expect(response_groups).to contain_exactly(public_group.name, group1.name)
...@@ -176,7 +176,7 @@ describe API::Groups do ...@@ -176,7 +176,7 @@ describe API::Groups do
it "sorts by name ascending by default" do it "sorts by name ascending by default" do
get api("/groups", user1) get api("/groups", user1)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(response_groups).to eq(groups_visible_to_user(user1).order(:name).pluck(:name)) expect(response_groups).to eq(groups_visible_to_user(user1).order(:name).pluck(:name))
...@@ -185,7 +185,7 @@ describe API::Groups do ...@@ -185,7 +185,7 @@ describe API::Groups do
it "sorts in descending order when passed" do it "sorts in descending order when passed" do
get api("/groups", user1), params: { sort: "desc" } get api("/groups", user1), params: { sort: "desc" }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(response_groups).to eq(groups_visible_to_user(user1).order(name: :desc).pluck(:name)) expect(response_groups).to eq(groups_visible_to_user(user1).order(name: :desc).pluck(:name))
...@@ -194,7 +194,7 @@ describe API::Groups do ...@@ -194,7 +194,7 @@ describe API::Groups do
it "sorts by path in order_by param" do it "sorts by path in order_by param" do
get api("/groups", user1), params: { order_by: "path" } get api("/groups", user1), params: { order_by: "path" }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(response_groups).to eq(groups_visible_to_user(user1).order(:path).pluck(:name)) expect(response_groups).to eq(groups_visible_to_user(user1).order(:path).pluck(:name))
...@@ -203,7 +203,7 @@ describe API::Groups do ...@@ -203,7 +203,7 @@ describe API::Groups do
it "sorts by id in the order_by param" do it "sorts by id in the order_by param" do
get api("/groups", user1), params: { order_by: "id" } get api("/groups", user1), params: { order_by: "id" }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(response_groups).to eq(groups_visible_to_user(user1).order(:id).pluck(:name)) expect(response_groups).to eq(groups_visible_to_user(user1).order(:id).pluck(:name))
...@@ -212,7 +212,7 @@ describe API::Groups do ...@@ -212,7 +212,7 @@ describe API::Groups do
it "sorts also by descending id with pagination fix" do it "sorts also by descending id with pagination fix" do
get api("/groups", user1), params: { order_by: "id", sort: "desc" } get api("/groups", user1), params: { order_by: "id", sort: "desc" }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(response_groups).to eq(groups_visible_to_user(user1).order(id: :desc).pluck(:name)) expect(response_groups).to eq(groups_visible_to_user(user1).order(id: :desc).pluck(:name))
...@@ -221,7 +221,7 @@ describe API::Groups do ...@@ -221,7 +221,7 @@ describe API::Groups do
it "sorts identical keys by id for good pagination" do it "sorts identical keys by id for good pagination" do
get api("/groups", user1), params: { search: "same-name", order_by: "name" } get api("/groups", user1), params: { search: "same-name", order_by: "name" }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(response_groups_ids).to eq(Group.select { |group| group['name'] == 'same-name' }.map { |group| group['id'] }.sort) expect(response_groups_ids).to eq(Group.select { |group| group['name'] == 'same-name' }.map { |group| group['id'] }.sort)
...@@ -230,7 +230,7 @@ describe API::Groups do ...@@ -230,7 +230,7 @@ describe API::Groups do
it "sorts descending identical keys by id for good pagination" do it "sorts descending identical keys by id for good pagination" do
get api("/groups", user1), params: { search: "same-name", order_by: "name", sort: "desc" } get api("/groups", user1), params: { search: "same-name", order_by: "name", sort: "desc" }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(response_groups_ids).to eq(Group.select { |group| group['name'] == 'same-name' }.map { |group| group['id'] }.sort) expect(response_groups_ids).to eq(Group.select { |group| group['name'] == 'same-name' }.map { |group| group['id'] }.sort)
...@@ -247,7 +247,7 @@ describe API::Groups do ...@@ -247,7 +247,7 @@ describe API::Groups do
get api('/groups', user2), params: { owned: true } get api('/groups', user2), params: { owned: true }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response.length).to eq(1) expect(json_response.length).to eq(1)
...@@ -267,7 +267,7 @@ describe API::Groups do ...@@ -267,7 +267,7 @@ describe API::Groups do
it 'returns an array of groups the user has at least master access' do it 'returns an array of groups the user has at least master access' do
get api('/groups', user2), params: { min_access_level: 40 } get api('/groups', user2), params: { min_access_level: 40 }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(response_groups).to eq([group2.id, group3.id]) expect(response_groups).to eq([group2.id, group3.id])
...@@ -308,13 +308,13 @@ describe API::Groups do ...@@ -308,13 +308,13 @@ describe API::Groups do
it 'returns 404 for a private group' do it 'returns 404 for a private group' do
get api("/groups/#{group2.id}") get api("/groups/#{group2.id}")
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
it 'returns 200 for a public group' do it 'returns 200 for a public group' do
get api("/groups/#{group1.id}") get api("/groups/#{group1.id}")
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response).not_to include('runners_token') expect(json_response).not_to include('runners_token')
end end
...@@ -346,7 +346,7 @@ describe API::Groups do ...@@ -346,7 +346,7 @@ describe API::Groups do
get api("/groups/#{group1.id}", user1) get api("/groups/#{group1.id}", user1)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['id']).to eq(group1.id) expect(json_response['id']).to eq(group1.id)
expect(json_response['name']).to eq(group1.name) expect(json_response['name']).to eq(group1.name)
expect(json_response['path']).to eq(group1.path) expect(json_response['path']).to eq(group1.path)
...@@ -379,7 +379,7 @@ describe API::Groups do ...@@ -379,7 +379,7 @@ describe API::Groups do
get api("/groups/#{group1.id}", user1), params: { with_projects: false } get api("/groups/#{group1.id}", user1), params: { with_projects: false }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['projects']).to be_nil expect(json_response['projects']).to be_nil
expect(json_response['shared_projects']).to be_nil expect(json_response['shared_projects']).to be_nil
expect(json_response).not_to include('runners_token') expect(json_response).not_to include('runners_token')
...@@ -388,7 +388,7 @@ describe API::Groups do ...@@ -388,7 +388,7 @@ describe API::Groups do
it "doesn't return runners_token if the user is not the owner of the group" do it "doesn't return runners_token if the user is not the owner of the group" do
get api("/groups/#{group1.id}", user3) get api("/groups/#{group1.id}", user3)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response).not_to include('runners_token') expect(json_response).not_to include('runners_token')
end end
...@@ -396,20 +396,20 @@ describe API::Groups do ...@@ -396,20 +396,20 @@ describe API::Groups do
group1.add_owner(user3) group1.add_owner(user3)
get api("/groups/#{group1.id}", user3) get api("/groups/#{group1.id}", user3)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response).to include('runners_token') expect(json_response).to include('runners_token')
end end
it "does not return a non existing group" do it "does not return a non existing group" do
get api("/groups/1328", user1) get api("/groups/1328", user1)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
it "does not return a group not attached to user1" do it "does not return a group not attached to user1" do
get api("/groups/#{group2.id}", user1) get api("/groups/#{group2.id}", user1)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
it 'returns only public and internal projects in the group' do it 'returns only public and internal projects in the group' do
...@@ -451,21 +451,21 @@ describe API::Groups do ...@@ -451,21 +451,21 @@ describe API::Groups do
it "returns any existing group" do it "returns any existing group" do
get api("/groups/#{group2.id}", admin) get api("/groups/#{group2.id}", admin)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['name']).to eq(group2.name) expect(json_response['name']).to eq(group2.name)
end end
it "returns information of the runners_token for the group" do it "returns information of the runners_token for the group" do
get api("/groups/#{group2.id}", admin) get api("/groups/#{group2.id}", admin)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response).to include('runners_token') expect(json_response).to include('runners_token')
end end
it "does not return a non existing group" do it "does not return a non existing group" do
get api("/groups/1328", admin) get api("/groups/1328", admin)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
...@@ -473,20 +473,20 @@ describe API::Groups do ...@@ -473,20 +473,20 @@ describe API::Groups do
it 'returns any existing group' do it 'returns any existing group' do
get api("/groups/#{group1.path}", admin) get api("/groups/#{group1.path}", admin)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['name']).to eq(group1.name) expect(json_response['name']).to eq(group1.name)
end end
it 'does not return a non existing group' do it 'does not return a non existing group' do
get api('/groups/unknown', admin) get api('/groups/unknown', admin)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
it 'does not return a group not attached to user1' do it 'does not return a group not attached to user1' do
get api("/groups/#{group2.path}", user1) get api("/groups/#{group2.path}", user1)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
...@@ -548,7 +548,7 @@ describe API::Groups do ...@@ -548,7 +548,7 @@ describe API::Groups do
subgroup_creation_level: "maintainer" subgroup_creation_level: "maintainer"
} }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['name']).to eq(new_group_name) expect(json_response['name']).to eq(new_group_name)
expect(json_response['description']).to eq('') expect(json_response['description']).to eq('')
expect(json_response['visibility']).to eq('public') expect(json_response['visibility']).to eq('public')
...@@ -571,7 +571,7 @@ describe API::Groups do ...@@ -571,7 +571,7 @@ describe API::Groups do
it 'returns 404 for a non existing group' do it 'returns 404 for a non existing group' do
put api('/groups/1328', user1), params: { name: new_group_name } put api('/groups/1328', user1), params: { name: new_group_name }
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
context 'within a subgroup' do context 'within a subgroup' do
...@@ -585,14 +585,14 @@ describe API::Groups do ...@@ -585,14 +585,14 @@ describe API::Groups do
it 'does not change visibility when not requested' do it 'does not change visibility when not requested' do
put api("/groups/#{group3.id}", user3), params: { description: 'Bug #23083' } put api("/groups/#{group3.id}", user3), params: { description: 'Bug #23083' }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['visibility']).to eq('public') expect(json_response['visibility']).to eq('public')
end end
it 'prevents making private a group containing public subgroups' do it 'prevents making private a group containing public subgroups' do
put api("/groups/#{group3.id}", user3), params: { visibility: 'private' } put api("/groups/#{group3.id}", user3), params: { visibility: 'private' }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['message']['visibility_level']).to contain_exactly('private is not allowed since there are sub-groups with higher visibility.') expect(json_response['message']['visibility_level']).to contain_exactly('private is not allowed since there are sub-groups with higher visibility.')
end end
end end
...@@ -602,7 +602,7 @@ describe API::Groups do ...@@ -602,7 +602,7 @@ describe API::Groups do
it 'updates the group' do it 'updates the group' do
put api("/groups/#{group1.id}", admin), params: { name: new_group_name } put api("/groups/#{group1.id}", admin), params: { name: new_group_name }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['name']).to eq(new_group_name) expect(json_response['name']).to eq(new_group_name)
end end
end end
...@@ -611,7 +611,7 @@ describe API::Groups do ...@@ -611,7 +611,7 @@ describe API::Groups do
it 'does not updates the group' do it 'does not updates the group' do
put api("/groups/#{group1.id}", user2), params: { name: new_group_name } put api("/groups/#{group1.id}", user2), params: { name: new_group_name }
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
...@@ -619,7 +619,7 @@ describe API::Groups do ...@@ -619,7 +619,7 @@ describe API::Groups do
it 'returns 404 when trying to update the group' do it 'returns 404 when trying to update the group' do
put api("/groups/#{group2.id}", user1), params: { name: new_group_name } put api("/groups/#{group2.id}", user1), params: { name: new_group_name }
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
...@@ -645,7 +645,7 @@ describe API::Groups do ...@@ -645,7 +645,7 @@ describe API::Groups do
it "returns the group's projects" do it "returns the group's projects" do
get api("/groups/#{group1.id}/projects", user1) get api("/groups/#{group1.id}/projects", user1)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response.length).to eq(2) expect(json_response.length).to eq(2)
project_names = json_response.map { |proj| proj['name'] } project_names = json_response.map { |proj| proj['name'] }
...@@ -656,7 +656,7 @@ describe API::Groups do ...@@ -656,7 +656,7 @@ describe API::Groups do
it "returns the group's projects with simple representation" do it "returns the group's projects with simple representation" do
get api("/groups/#{group1.id}/projects", user1), params: { simple: true } get api("/groups/#{group1.id}/projects", user1), params: { simple: true }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response.length).to eq(2) expect(json_response.length).to eq(2)
project_names = json_response.map { |proj| proj['name'] } project_names = json_response.map { |proj| proj['name'] }
...@@ -669,7 +669,7 @@ describe API::Groups do ...@@ -669,7 +669,7 @@ describe API::Groups do
get api("/groups/#{group1.id}/projects", user1), params: { visibility: 'public' } get api("/groups/#{group1.id}/projects", user1), params: { visibility: 'public' }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an(Array) expect(json_response).to be_an(Array)
expect(json_response.length).to eq(1) expect(json_response.length).to eq(1)
...@@ -683,7 +683,7 @@ describe API::Groups do ...@@ -683,7 +683,7 @@ describe API::Groups do
get api("/groups/#{group1.id}/projects", user1), params: { with_shared: false } get api("/groups/#{group1.id}/projects", user1), params: { with_shared: false }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an(Array) expect(json_response).to be_an(Array)
expect(json_response.length).to eq(2) expect(json_response.length).to eq(2)
...@@ -696,7 +696,7 @@ describe API::Groups do ...@@ -696,7 +696,7 @@ describe API::Groups do
get api("/groups/#{group1.id}/projects", user1), params: { include_subgroups: true } get api("/groups/#{group1.id}/projects", user1), params: { include_subgroups: true }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an(Array) expect(json_response).to be_an(Array)
expect(json_response.length).to eq(4) expect(json_response.length).to eq(4)
...@@ -705,13 +705,13 @@ describe API::Groups do ...@@ -705,13 +705,13 @@ describe API::Groups do
it "does not return a non existing group" do it "does not return a non existing group" do
get api("/groups/1328/projects", user1) get api("/groups/1328/projects", user1)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
it "does not return a group not attached to user1" do it "does not return a group not attached to user1" do
get api("/groups/#{group2.id}/projects", user1) get api("/groups/#{group2.id}/projects", user1)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
it "only returns projects to which user has access" do it "only returns projects to which user has access" do
...@@ -719,7 +719,7 @@ describe API::Groups do ...@@ -719,7 +719,7 @@ describe API::Groups do
get api("/groups/#{group1.id}/projects", user3) get api("/groups/#{group1.id}/projects", user3)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response.length).to eq(1) expect(json_response.length).to eq(1)
expect(json_response.first['name']).to eq(project3.name) expect(json_response.first['name']).to eq(project3.name)
...@@ -730,7 +730,7 @@ describe API::Groups do ...@@ -730,7 +730,7 @@ describe API::Groups do
get api("/groups/#{project2.group.id}/projects", user3), params: { owned: true } get api("/groups/#{project2.group.id}/projects", user3), params: { owned: true }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response.length).to eq(1) expect(json_response.length).to eq(1)
expect(json_response.first['name']).to eq(project2.name) expect(json_response.first['name']).to eq(project2.name)
end end
...@@ -740,7 +740,7 @@ describe API::Groups do ...@@ -740,7 +740,7 @@ describe API::Groups do
get api("/groups/#{group1.id}/projects", user1), params: { starred: true } get api("/groups/#{group1.id}/projects", user1), params: { starred: true }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response.length).to eq(1) expect(json_response.length).to eq(1)
expect(json_response.first['name']).to eq(project1.name) expect(json_response.first['name']).to eq(project1.name)
end end
...@@ -750,7 +750,7 @@ describe API::Groups do ...@@ -750,7 +750,7 @@ describe API::Groups do
it "returns any existing group" do it "returns any existing group" do
get api("/groups/#{group2.id}/projects", admin) get api("/groups/#{group2.id}/projects", admin)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response.length).to eq(1) expect(json_response.length).to eq(1)
expect(json_response.first['name']).to eq(project2.name) expect(json_response.first['name']).to eq(project2.name)
...@@ -759,7 +759,7 @@ describe API::Groups do ...@@ -759,7 +759,7 @@ describe API::Groups do
it "does not return a non existing group" do it "does not return a non existing group" do
get api("/groups/1328/projects", admin) get api("/groups/1328/projects", admin)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
it 'avoids N+1 queries' do it 'avoids N+1 queries' do
...@@ -781,7 +781,7 @@ describe API::Groups do ...@@ -781,7 +781,7 @@ describe API::Groups do
it 'returns any existing group' do it 'returns any existing group' do
get api("/groups/#{group1.path}/projects", admin) get api("/groups/#{group1.path}/projects", admin)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
project_names = json_response.map { |proj| proj['name'] } project_names = json_response.map { |proj| proj['name'] }
expect(project_names).to match_array([project1.name, project3.name]) expect(project_names).to match_array([project1.name, project3.name])
...@@ -790,13 +790,13 @@ describe API::Groups do ...@@ -790,13 +790,13 @@ describe API::Groups do
it 'does not return a non existing group' do it 'does not return a non existing group' do
get api('/groups/unknown/projects', admin) get api('/groups/unknown/projects', admin)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
it 'does not return a group not attached to user1' do it 'does not return a group not attached to user1' do
get api("/groups/#{group2.path}/projects", user1) get api("/groups/#{group2.path}/projects", user1)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
...@@ -810,7 +810,7 @@ describe API::Groups do ...@@ -810,7 +810,7 @@ describe API::Groups do
it 'returns only public subgroups' do it 'returns only public subgroups' do
get api("/groups/#{group1.id}/subgroups") get api("/groups/#{group1.id}/subgroups")
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response.length).to eq(1) expect(json_response.length).to eq(1)
...@@ -821,7 +821,7 @@ describe API::Groups do ...@@ -821,7 +821,7 @@ describe API::Groups do
it 'returns 404 for a private group' do it 'returns 404 for a private group' do
get api("/groups/#{group2.id}/subgroups") get api("/groups/#{group2.id}/subgroups")
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
...@@ -830,7 +830,7 @@ describe API::Groups do ...@@ -830,7 +830,7 @@ describe API::Groups do
it 'returns no subgroups for the public group' do it 'returns no subgroups for the public group' do
get api("/groups/#{group1.id}/subgroups", user2) get api("/groups/#{group1.id}/subgroups", user2)
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).to be_an Array
expect(json_response.length).to eq(0) expect(json_response.length).to eq(0)
end end
...@@ -839,7 +839,7 @@ describe API::Groups do ...@@ -839,7 +839,7 @@ describe API::Groups do
it 'returns public subgroups' do it 'returns public subgroups' do
get api("/groups/#{group1.id}/subgroups", user2), params: { all_available: true } get api("/groups/#{group1.id}/subgroups", user2), params: { all_available: true }
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).to be_an Array
expect(json_response.length).to eq(1) expect(json_response.length).to eq(1)
expect(json_response[0]['id']).to eq(subgroup1.id) expect(json_response[0]['id']).to eq(subgroup1.id)
...@@ -852,7 +852,7 @@ describe API::Groups do ...@@ -852,7 +852,7 @@ describe API::Groups do
it 'returns 404 for the private group' do it 'returns 404 for the private group' do
get api("/groups/#{group2.id}/subgroups", user1) get api("/groups/#{group2.id}/subgroups", user1)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
...@@ -864,7 +864,7 @@ describe API::Groups do ...@@ -864,7 +864,7 @@ describe API::Groups do
it 'returns private subgroups' do it 'returns private subgroups' do
get api("/groups/#{group1.id}/subgroups", user2) get api("/groups/#{group1.id}/subgroups", user2)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response.length).to eq(2) expect(json_response.length).to eq(2)
...@@ -878,7 +878,7 @@ describe API::Groups do ...@@ -878,7 +878,7 @@ describe API::Groups do
it 'does not include statistics' do it 'does not include statistics' do
get api("/groups/#{group1.id}/subgroups", user2), params: { statistics: true } get api("/groups/#{group1.id}/subgroups", user2), params: { statistics: true }
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).to be_an Array
expect(json_response.first).not_to include 'statistics' expect(json_response.first).not_to include 'statistics'
end end
...@@ -893,7 +893,7 @@ describe API::Groups do ...@@ -893,7 +893,7 @@ describe API::Groups do
it 'returns subgroups' do it 'returns subgroups' do
get api("/groups/#{group2.id}/subgroups", user1) get api("/groups/#{group2.id}/subgroups", user1)
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).to be_an Array
expect(json_response.length).to eq(1) expect(json_response.length).to eq(1)
expect(json_response.first['id']).to eq(subgroup3.id) expect(json_response.first['id']).to eq(subgroup3.id)
...@@ -906,7 +906,7 @@ describe API::Groups do ...@@ -906,7 +906,7 @@ describe API::Groups do
it 'returns private subgroups of a public group' do it 'returns private subgroups of a public group' do
get api("/groups/#{group1.id}/subgroups", admin) get api("/groups/#{group1.id}/subgroups", admin)
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).to be_an Array
expect(json_response.length).to eq(2) expect(json_response.length).to eq(2)
end end
...@@ -914,7 +914,7 @@ describe API::Groups do ...@@ -914,7 +914,7 @@ describe API::Groups do
it 'returns subgroups of a private group' do it 'returns subgroups of a private group' do
get api("/groups/#{group2.id}/subgroups", admin) get api("/groups/#{group2.id}/subgroups", admin)
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).to be_an Array
expect(json_response.length).to eq(1) expect(json_response.length).to eq(1)
end end
...@@ -922,7 +922,7 @@ describe API::Groups do ...@@ -922,7 +922,7 @@ describe API::Groups do
it 'does not include statistics by default' do it 'does not include statistics by default' do
get api("/groups/#{group1.id}/subgroups", admin) get api("/groups/#{group1.id}/subgroups", admin)
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).to be_an Array
expect(json_response.first).not_to include('statistics') expect(json_response.first).not_to include('statistics')
end end
...@@ -930,7 +930,7 @@ describe API::Groups do ...@@ -930,7 +930,7 @@ describe API::Groups do
it 'includes statistics if requested' do it 'includes statistics if requested' do
get api("/groups/#{group1.id}/subgroups", admin), params: { statistics: true } get api("/groups/#{group1.id}/subgroups", admin), params: { statistics: true }
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).to be_an Array
expect(json_response.first).to include('statistics') expect(json_response.first).to include('statistics')
end end
...@@ -944,7 +944,7 @@ describe API::Groups do ...@@ -944,7 +944,7 @@ describe API::Groups do
post api("/groups", user1), params: group post api("/groups", user1), params: group
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
context 'as owner' do context 'as owner' do
...@@ -955,7 +955,7 @@ describe API::Groups do ...@@ -955,7 +955,7 @@ describe API::Groups do
it 'can create subgroups' do it 'can create subgroups' do
post api("/groups", user1), params: { parent_id: group2.id, name: 'foo', path: 'foo' } post api("/groups", user1), params: { parent_id: group2.id, name: 'foo', path: 'foo' }
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
end end
end end
...@@ -967,7 +967,7 @@ describe API::Groups do ...@@ -967,7 +967,7 @@ describe API::Groups do
it 'can create subgroups' do it 'can create subgroups' do
post api("/groups", user1), params: { parent_id: group2.id, name: 'foo', path: 'foo' } post api("/groups", user1), params: { parent_id: group2.id, name: 'foo', path: 'foo' }
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
end end
end end
end end
...@@ -978,7 +978,7 @@ describe API::Groups do ...@@ -978,7 +978,7 @@ describe API::Groups do
post api("/groups", user3), params: group post api("/groups", user3), params: group
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(json_response["name"]).to eq(group[:name]) expect(json_response["name"]).to eq(group[:name])
expect(json_response["path"]).to eq(group[:path]) expect(json_response["path"]).to eq(group[:path])
...@@ -993,7 +993,7 @@ describe API::Groups do ...@@ -993,7 +993,7 @@ describe API::Groups do
post api("/groups", user3), params: group post api("/groups", user3), params: group
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(json_response["full_path"]).to eq("#{parent.path}/#{group[:path]}") expect(json_response["full_path"]).to eq("#{parent.path}/#{group[:path]}")
expect(json_response["parent_id"]).to eq(parent.id) expect(json_response["parent_id"]).to eq(parent.id)
...@@ -1002,20 +1002,20 @@ describe API::Groups do ...@@ -1002,20 +1002,20 @@ describe API::Groups do
it "does not create group, duplicate" do it "does not create group, duplicate" do
post api("/groups", user3), params: { name: 'Duplicate Test', path: group2.path } post api("/groups", user3), params: { name: 'Duplicate Test', path: group2.path }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(response.message).to eq("Bad Request") expect(response.message).to eq("Bad Request")
end end
it "returns 400 bad request error if name not given" do it "returns 400 bad request error if name not given" do
post api("/groups", user3), params: { path: group2.path } post api("/groups", user3), params: { path: group2.path }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
it "returns 400 bad request error if path not given" do it "returns 400 bad request error if path not given" do
post api("/groups", user3), params: { name: 'test' } post api("/groups", user3), params: { name: 'test' }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
end end
end end
...@@ -1027,7 +1027,7 @@ describe API::Groups do ...@@ -1027,7 +1027,7 @@ describe API::Groups do
expect { delete api("/groups/#{group1.id}", user1) }.to change(GroupDestroyWorker.jobs, :size).by(1) expect { delete api("/groups/#{group1.id}", user1) }.to change(GroupDestroyWorker.jobs, :size).by(1)
end end
expect(response).to have_gitlab_http_status(202) expect(response).to have_gitlab_http_status(:accepted)
end end
it_behaves_like '412 response' do it_behaves_like '412 response' do
...@@ -1041,19 +1041,19 @@ describe API::Groups do ...@@ -1041,19 +1041,19 @@ describe API::Groups do
delete api("/groups/#{group1.id}", user3) delete api("/groups/#{group1.id}", user3)
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
it "does not remove a non existing group" do it "does not remove a non existing group" do
delete api("/groups/1328", user1) delete api("/groups/1328", user1)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
it "does not remove a group not attached to user1" do it "does not remove a group not attached to user1" do
delete api("/groups/#{group2.id}", user1) delete api("/groups/#{group2.id}", user1)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
...@@ -1061,13 +1061,13 @@ describe API::Groups do ...@@ -1061,13 +1061,13 @@ describe API::Groups do
it "removes any existing group" do it "removes any existing group" do
delete api("/groups/#{group2.id}", admin) delete api("/groups/#{group2.id}", admin)
expect(response).to have_gitlab_http_status(202) expect(response).to have_gitlab_http_status(:accepted)
end end
it "does not remove a non existing group" do it "does not remove a non existing group" do
delete api("/groups/1328", admin) delete api("/groups/1328", admin)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
...@@ -1086,7 +1086,7 @@ describe API::Groups do ...@@ -1086,7 +1086,7 @@ describe API::Groups do
it "does not transfer project to group" do it "does not transfer project to group" do
post api("/groups/#{group1.id}/projects/#{project.id}", user2) post api("/groups/#{group1.id}/projects/#{project.id}", user2)
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
...@@ -1094,7 +1094,7 @@ describe API::Groups do ...@@ -1094,7 +1094,7 @@ describe API::Groups do
it "transfers project to group" do it "transfers project to group" do
post api("/groups/#{group1.id}/projects/#{project.id}", admin) post api("/groups/#{group1.id}/projects/#{project.id}", admin)
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
end end
context 'when using project path in URL' do context 'when using project path in URL' do
...@@ -1102,7 +1102,7 @@ describe API::Groups do ...@@ -1102,7 +1102,7 @@ describe API::Groups do
it "transfers project to group" do it "transfers project to group" do
post api("/groups/#{group1.id}/projects/#{project_path}", admin) post api("/groups/#{group1.id}/projects/#{project_path}", admin)
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
end end
end end
...@@ -1110,7 +1110,7 @@ describe API::Groups do ...@@ -1110,7 +1110,7 @@ describe API::Groups do
it "does not transfer project to group" do it "does not transfer project to group" do
post api("/groups/#{group1.id}/projects/nogroup%2Fnoproject", admin) post api("/groups/#{group1.id}/projects/nogroup%2Fnoproject", admin)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
...@@ -1120,7 +1120,7 @@ describe API::Groups do ...@@ -1120,7 +1120,7 @@ describe API::Groups do
it "transfers project to group" do it "transfers project to group" do
post api("/groups/#{group1.path}/projects/#{project_path}", admin) post api("/groups/#{group1.path}/projects/#{project_path}", admin)
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
end end
end end
...@@ -1128,7 +1128,7 @@ describe API::Groups do ...@@ -1128,7 +1128,7 @@ describe API::Groups do
it "does not transfer project to group" do it "does not transfer project to group" do
post api("/groups/noexist/projects/#{project_path}", admin) post api("/groups/noexist/projects/#{project_path}", admin)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
......
...@@ -269,7 +269,7 @@ describe API::Helpers do ...@@ -269,7 +269,7 @@ describe API::Helpers do
# The 500 status is expected as we're testing a case where an exception # The 500 status is expected as we're testing a case where an exception
# is raised, but Grape shouldn't raise an additional exception # is raised, but Grape shouldn't raise an additional exception
expect(response).to have_gitlab_http_status(500) expect(response).to have_gitlab_http_status(:internal_server_error)
expect(json_response['message']).not_to include("undefined local variable or method `request'") expect(json_response['message']).not_to include("undefined local variable or method `request'")
expect(json_response['message']).to start_with("\nRuntimeError (Runtime Error!):") expect(json_response['message']).to start_with("\nRuntimeError (Runtime Error!):")
end end
......
...@@ -36,7 +36,7 @@ describe API::ImportGithub do ...@@ -36,7 +36,7 @@ describe API::ImportGithub do
personal_access_token: token, personal_access_token: token,
repo_id: 1234 repo_id: 1234
} }
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).to be_a Hash
expect(json_response['name']).to eq(project.name) expect(json_response['name']).to eq(project.name)
end end
...@@ -50,7 +50,7 @@ describe API::ImportGithub do ...@@ -50,7 +50,7 @@ describe API::ImportGithub do
repo_id: 1234 repo_id: 1234
} }
expect(response).to have_gitlab_http_status(422) expect(response).to have_gitlab_http_status(:unprocessable_entity)
end end
end end
end end
...@@ -66,7 +66,7 @@ describe API::Jobs do ...@@ -66,7 +66,7 @@ describe API::Jobs do
context 'authorized user' do context 'authorized user' do
it 'returns project jobs' do it 'returns project jobs' do
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
end end
...@@ -122,7 +122,7 @@ describe API::Jobs do ...@@ -122,7 +122,7 @@ describe API::Jobs do
let(:query) { { 'scope' => 'pending' } } let(:query) { { 'scope' => 'pending' } }
it do it do
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).to be_an Array
end end
end end
...@@ -131,7 +131,7 @@ describe API::Jobs do ...@@ -131,7 +131,7 @@ describe API::Jobs do
let(:query) { { scope: %w(pending running) } } let(:query) { { scope: %w(pending running) } }
it do it do
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).to be_an Array
end end
end end
...@@ -139,7 +139,7 @@ describe API::Jobs do ...@@ -139,7 +139,7 @@ describe API::Jobs do
context 'respond 400 when scope contains invalid state' do context 'respond 400 when scope contains invalid state' do
let(:query) { { scope: %w(unknown running) } } let(:query) { { scope: %w(unknown running) } }
it { expect(response).to have_gitlab_http_status(400) } it { expect(response).to have_gitlab_http_status(:bad_request) }
end end
end end
...@@ -148,7 +148,7 @@ describe API::Jobs do ...@@ -148,7 +148,7 @@ describe API::Jobs do
let(:api_user) { nil } let(:api_user) { nil }
it 'does not return project jobs' do it 'does not return project jobs' do
expect(response).to have_gitlab_http_status(401) expect(response).to have_gitlab_http_status(:unauthorized)
end end
end end
...@@ -156,7 +156,7 @@ describe API::Jobs do ...@@ -156,7 +156,7 @@ describe API::Jobs do
let(:api_user) { guest } let(:api_user) { guest }
it 'does not return project jobs' do it 'does not return project jobs' do
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
end end
...@@ -178,7 +178,7 @@ describe API::Jobs do ...@@ -178,7 +178,7 @@ describe API::Jobs do
context 'authorized user' do context 'authorized user' do
it 'returns pipeline jobs' do it 'returns pipeline jobs' do
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
end end
...@@ -210,7 +210,7 @@ describe API::Jobs do ...@@ -210,7 +210,7 @@ describe API::Jobs do
let(:query) { { 'scope' => 'pending' } } let(:query) { { 'scope' => 'pending' } }
it do it do
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).to be_an Array
end end
end end
...@@ -219,7 +219,7 @@ describe API::Jobs do ...@@ -219,7 +219,7 @@ describe API::Jobs do
let(:query) { { scope: %w(pending running) } } let(:query) { { scope: %w(pending running) } }
it do it do
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).to be_an Array
end end
end end
...@@ -227,7 +227,7 @@ describe API::Jobs do ...@@ -227,7 +227,7 @@ describe API::Jobs do
context 'respond 400 when scope contains invalid state' do context 'respond 400 when scope contains invalid state' do
let(:query) { { scope: %w(unknown running) } } let(:query) { { scope: %w(unknown running) } }
it { expect(response).to have_gitlab_http_status(400) } it { expect(response).to have_gitlab_http_status(:bad_request) }
end end
context 'jobs in different pipelines' do context 'jobs in different pipelines' do
...@@ -257,7 +257,7 @@ describe API::Jobs do ...@@ -257,7 +257,7 @@ describe API::Jobs do
let(:api_user) { nil } let(:api_user) { nil }
it 'does not return jobs' do it 'does not return jobs' do
expect(response).to have_gitlab_http_status(401) expect(response).to have_gitlab_http_status(:unauthorized)
end end
end end
...@@ -265,7 +265,7 @@ describe API::Jobs do ...@@ -265,7 +265,7 @@ describe API::Jobs do
let(:api_user) { guest } let(:api_user) { guest }
it 'does not return jobs' do it 'does not return jobs' do
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
end end
...@@ -280,7 +280,7 @@ describe API::Jobs do ...@@ -280,7 +280,7 @@ describe API::Jobs do
context 'authorized user' do context 'authorized user' do
it 'returns specific job data' do it 'returns specific job data' do
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['id']).to eq(job.id) expect(json_response['id']).to eq(job.id)
expect(json_response['status']).to eq(job.status) expect(json_response['status']).to eq(job.status)
expect(json_response['stage']).to eq(job.stage) expect(json_response['stage']).to eq(job.stage)
...@@ -319,7 +319,7 @@ describe API::Jobs do ...@@ -319,7 +319,7 @@ describe API::Jobs do
let(:api_user) { nil } let(:api_user) { nil }
it 'does not return specific job data' do it 'does not return specific job data' do
expect(response).to have_gitlab_http_status(401) expect(response).to have_gitlab_http_status(:unauthorized)
end end
end end
end end
...@@ -339,7 +339,7 @@ describe API::Jobs do ...@@ -339,7 +339,7 @@ describe API::Jobs do
end end
it 'returns status 401 (unauthorized)' do it 'returns status 401 (unauthorized)' do
expect(response).to have_http_status :unauthorized expect(response).to have_gitlab_http_status(:unauthorized)
end end
end end
...@@ -349,7 +349,7 @@ describe API::Jobs do ...@@ -349,7 +349,7 @@ describe API::Jobs do
end end
it 'returns status 403 (forbidden)' do it 'returns status 403 (forbidden)' do
expect(response).to have_http_status :forbidden expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
...@@ -362,7 +362,7 @@ describe API::Jobs do ...@@ -362,7 +362,7 @@ describe API::Jobs do
end end
it 'returns status 204 (no content)' do it 'returns status 204 (no content)' do
expect(response).to have_http_status :no_content expect(response).to have_gitlab_http_status(:no_content)
end end
end end
end end
...@@ -386,7 +386,7 @@ describe API::Jobs do ...@@ -386,7 +386,7 @@ describe API::Jobs do
get_artifact_file(artifact) get_artifact_file(artifact)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
end end
end end
...@@ -398,7 +398,7 @@ describe API::Jobs do ...@@ -398,7 +398,7 @@ describe API::Jobs do
get_artifact_file(artifact) get_artifact_file(artifact)
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
...@@ -410,7 +410,7 @@ describe API::Jobs do ...@@ -410,7 +410,7 @@ describe API::Jobs do
get_artifact_file(artifact) get_artifact_file(artifact)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
...@@ -423,7 +423,7 @@ describe API::Jobs do ...@@ -423,7 +423,7 @@ describe API::Jobs do
get_artifact_file(artifact) get_artifact_file(artifact)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response.headers.to_h) expect(response.headers.to_h)
.to include('Content-Type' => 'application/json', .to include('Content-Type' => 'application/json',
'Gitlab-Workhorse-Send-Data' => /artifacts-entry/) 'Gitlab-Workhorse-Send-Data' => /artifacts-entry/)
...@@ -435,7 +435,7 @@ describe API::Jobs do ...@@ -435,7 +435,7 @@ describe API::Jobs do
it 'does not return job artifact file' do it 'does not return job artifact file' do
get_artifact_file('some/artifact') get_artifact_file('some/artifact')
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
...@@ -453,7 +453,7 @@ describe API::Jobs do ...@@ -453,7 +453,7 @@ describe API::Jobs do
end end
it 'returns specific job artifacts' do it 'returns specific job artifacts' do
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response.headers.to_h).to include(download_headers) expect(response.headers.to_h).to include(download_headers)
expect(response.body).to match_file(job.artifacts_file.file.file) expect(response.body).to match_file(job.artifacts_file.file.file)
end end
...@@ -476,7 +476,7 @@ describe API::Jobs do ...@@ -476,7 +476,7 @@ describe API::Jobs do
let(:api_user) { nil } let(:api_user) { nil }
it 'does not return specific job artifacts' do it 'does not return specific job artifacts' do
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
...@@ -507,7 +507,7 @@ describe API::Jobs do ...@@ -507,7 +507,7 @@ describe API::Jobs do
context 'when proxy download is disabled' do context 'when proxy download is disabled' do
it 'returns location redirect' do it 'returns location redirect' do
expect(response).to have_gitlab_http_status(302) expect(response).to have_gitlab_http_status(:found)
end end
end end
...@@ -521,7 +521,7 @@ describe API::Jobs do ...@@ -521,7 +521,7 @@ describe API::Jobs do
let(:api_user) { nil } let(:api_user) { nil }
it 'does not return specific job artifacts' do it 'does not return specific job artifacts' do
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
...@@ -557,7 +557,7 @@ describe API::Jobs do ...@@ -557,7 +557,7 @@ describe API::Jobs do
it 'does not find a resource in a private project' do it 'does not find a resource in a private project' do
expect(project).to be_private expect(project).to be_private
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
...@@ -569,7 +569,7 @@ describe API::Jobs do ...@@ -569,7 +569,7 @@ describe API::Jobs do
end end
it 'gives 403' do it 'gives 403' do
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
...@@ -604,7 +604,7 @@ describe API::Jobs do ...@@ -604,7 +604,7 @@ describe API::Jobs do
%Q(attachment; filename="#{job.artifacts_file.filename}"; filename*=UTF-8''#{job.artifacts_file.filename}) } %Q(attachment; filename="#{job.artifacts_file.filename}"; filename*=UTF-8''#{job.artifacts_file.filename}) }
end end
it { expect(response).to have_http_status(:ok) } it { expect(response).to have_gitlab_http_status(:ok) }
it { expect(response.headers.to_h).to include(download_headers) } it { expect(response.headers.to_h).to include(download_headers) }
end end
...@@ -619,7 +619,7 @@ describe API::Jobs do ...@@ -619,7 +619,7 @@ describe API::Jobs do
end end
it 'returns location redirect' do it 'returns location redirect' do
expect(response).to have_http_status(:found) expect(response).to have_gitlab_http_status(:found)
end end
end end
end end
...@@ -677,7 +677,7 @@ describe API::Jobs do ...@@ -677,7 +677,7 @@ describe API::Jobs do
let(:public_builds) { true } let(:public_builds) { true }
it 'allows to access artifacts', :sidekiq_might_not_need_inline do it 'allows to access artifacts', :sidekiq_might_not_need_inline do
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response.headers.to_h) expect(response.headers.to_h)
.to include('Content-Type' => 'application/json', .to include('Content-Type' => 'application/json',
'Gitlab-Workhorse-Send-Data' => /artifacts-entry/) 'Gitlab-Workhorse-Send-Data' => /artifacts-entry/)
...@@ -689,7 +689,7 @@ describe API::Jobs do ...@@ -689,7 +689,7 @@ describe API::Jobs do
let(:public_builds) { false } let(:public_builds) { false }
it 'rejects access to artifacts' do it 'rejects access to artifacts' do
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
expect(json_response).to have_key('message') expect(json_response).to have_key('message')
expect(response.headers.to_h) expect(response.headers.to_h)
.not_to include('Gitlab-Workhorse-Send-Data' => /artifacts-entry/) .not_to include('Gitlab-Workhorse-Send-Data' => /artifacts-entry/)
...@@ -701,7 +701,7 @@ describe API::Jobs do ...@@ -701,7 +701,7 @@ describe API::Jobs do
let(:public_builds) { true } let(:public_builds) { true }
it 'rejects access and hides existence of artifacts' do it 'rejects access and hides existence of artifacts' do
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
expect(json_response).to have_key('message') expect(json_response).to have_key('message')
expect(response.headers.to_h) expect(response.headers.to_h)
.not_to include('Gitlab-Workhorse-Send-Data' => /artifacts-entry/) .not_to include('Gitlab-Workhorse-Send-Data' => /artifacts-entry/)
...@@ -720,7 +720,7 @@ describe API::Jobs do ...@@ -720,7 +720,7 @@ describe API::Jobs do
get_artifact_file(artifact) get_artifact_file(artifact)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response.headers.to_h) expect(response.headers.to_h)
.to include('Content-Type' => 'application/json', .to include('Content-Type' => 'application/json',
'Gitlab-Workhorse-Send-Data' => /artifacts-entry/) 'Gitlab-Workhorse-Send-Data' => /artifacts-entry/)
...@@ -737,7 +737,7 @@ describe API::Jobs do ...@@ -737,7 +737,7 @@ describe API::Jobs do
it 'returns a specific artifact file for a valid path', :sidekiq_might_not_need_inline do it 'returns a specific artifact file for a valid path', :sidekiq_might_not_need_inline do
get_artifact_file(artifact, 'improve/awesome') get_artifact_file(artifact, 'improve/awesome')
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response.headers.to_h) expect(response.headers.to_h)
.to include('Content-Type' => 'application/json', .to include('Content-Type' => 'application/json',
'Gitlab-Workhorse-Send-Data' => /artifacts-entry/) 'Gitlab-Workhorse-Send-Data' => /artifacts-entry/)
...@@ -773,7 +773,7 @@ describe API::Jobs do ...@@ -773,7 +773,7 @@ describe API::Jobs do
it 'does not return job artifact file' do it 'does not return job artifact file' do
get_artifact_file('some/artifact') get_artifact_file('some/artifact')
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
...@@ -803,7 +803,7 @@ describe API::Jobs do ...@@ -803,7 +803,7 @@ describe API::Jobs do
end end
it 'returns specific job trace' do it 'returns specific job trace' do
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response.body).to eq(job.trace.raw) expect(response.body).to eq(job.trace.raw)
end end
end end
...@@ -812,7 +812,7 @@ describe API::Jobs do ...@@ -812,7 +812,7 @@ describe API::Jobs do
let(:job) { create(:ci_build, :trace_artifact, pipeline: pipeline) } let(:job) { create(:ci_build, :trace_artifact, pipeline: pipeline) }
it 'returns specific job trace' do it 'returns specific job trace' do
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response.body).to eq(job.trace.raw) expect(response.body).to eq(job.trace.raw)
end end
end end
...@@ -821,7 +821,7 @@ describe API::Jobs do ...@@ -821,7 +821,7 @@ describe API::Jobs do
let(:job) { create(:ci_build, :trace_live, pipeline: pipeline) } let(:job) { create(:ci_build, :trace_live, pipeline: pipeline) }
it 'returns specific job trace' do it 'returns specific job trace' do
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response.body).to eq(job.trace.raw) expect(response.body).to eq(job.trace.raw)
end end
end end
...@@ -831,7 +831,7 @@ describe API::Jobs do ...@@ -831,7 +831,7 @@ describe API::Jobs do
let(:api_user) { nil } let(:api_user) { nil }
it 'does not return specific job trace' do it 'does not return specific job trace' do
expect(response).to have_gitlab_http_status(401) expect(response).to have_gitlab_http_status(:unauthorized)
end end
end end
end end
...@@ -844,7 +844,7 @@ describe API::Jobs do ...@@ -844,7 +844,7 @@ describe API::Jobs do
context 'authorized user' do context 'authorized user' do
context 'user with :update_build persmission' do context 'user with :update_build persmission' do
it 'cancels running or pending job' do it 'cancels running or pending job' do
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(project.builds.first.status).to eq('success') expect(project.builds.first.status).to eq('success')
end end
end end
...@@ -853,7 +853,7 @@ describe API::Jobs do ...@@ -853,7 +853,7 @@ describe API::Jobs do
let(:api_user) { reporter } let(:api_user) { reporter }
it 'does not cancel job' do it 'does not cancel job' do
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
end end
...@@ -862,7 +862,7 @@ describe API::Jobs do ...@@ -862,7 +862,7 @@ describe API::Jobs do
let(:api_user) { nil } let(:api_user) { nil }
it 'does not cancel job' do it 'does not cancel job' do
expect(response).to have_gitlab_http_status(401) expect(response).to have_gitlab_http_status(:unauthorized)
end end
end end
end end
...@@ -877,7 +877,7 @@ describe API::Jobs do ...@@ -877,7 +877,7 @@ describe API::Jobs do
context 'authorized user' do context 'authorized user' do
context 'user with :update_build permission' do context 'user with :update_build permission' do
it 'retries non-running job' do it 'retries non-running job' do
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(project.builds.first.status).to eq('canceled') expect(project.builds.first.status).to eq('canceled')
expect(json_response['status']).to eq('pending') expect(json_response['status']).to eq('pending')
end end
...@@ -887,7 +887,7 @@ describe API::Jobs do ...@@ -887,7 +887,7 @@ describe API::Jobs do
let(:api_user) { reporter } let(:api_user) { reporter }
it 'does not retry job' do it 'does not retry job' do
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
end end
...@@ -896,7 +896,7 @@ describe API::Jobs do ...@@ -896,7 +896,7 @@ describe API::Jobs do
let(:api_user) { nil } let(:api_user) { nil }
it 'does not retry job' do it 'does not retry job' do
expect(response).to have_gitlab_http_status(401) expect(response).to have_gitlab_http_status(:unauthorized)
end end
end end
end end
...@@ -914,7 +914,7 @@ describe API::Jobs do ...@@ -914,7 +914,7 @@ describe API::Jobs do
let(:job) { create(:ci_build, :trace_artifact, :artifacts, :test_reports, :success, project: project, pipeline: pipeline) } let(:job) { create(:ci_build, :trace_artifact, :artifacts, :test_reports, :success, project: project, pipeline: pipeline) }
it 'erases job content' do it 'erases job content' do
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(job.job_artifacts.count).to eq(0) expect(job.job_artifacts.count).to eq(0)
expect(job.trace.exist?).to be_falsy expect(job.trace.exist?).to be_falsy
expect(job.artifacts_file.present?).to be_falsy expect(job.artifacts_file.present?).to be_falsy
...@@ -934,7 +934,7 @@ describe API::Jobs do ...@@ -934,7 +934,7 @@ describe API::Jobs do
let(:job) { create(:ci_build, :trace_live, project: project, pipeline: pipeline) } let(:job) { create(:ci_build, :trace_live, project: project, pipeline: pipeline) }
it 'responds with forbidden' do it 'responds with forbidden' do
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
...@@ -945,13 +945,13 @@ describe API::Jobs do ...@@ -945,13 +945,13 @@ describe API::Jobs do
context 'when the build was created by the developer' do context 'when the build was created by the developer' do
let(:owner) { user } let(:owner) { user }
it { expect(response).to have_gitlab_http_status(201) } it { expect(response).to have_gitlab_http_status(:created) }
end end
context 'when the build was created by the other' do context 'when the build was created by the other' do
let(:owner) { create(:user) } let(:owner) { create(:user) }
it { expect(response).to have_gitlab_http_status(403) } it { expect(response).to have_gitlab_http_status(:forbidden) }
end end
end end
end end
...@@ -968,7 +968,7 @@ describe API::Jobs do ...@@ -968,7 +968,7 @@ describe API::Jobs do
end end
it 'keeps artifacts' do it 'keeps artifacts' do
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(job.reload.artifacts_expire_at).to be_nil expect(job.reload.artifacts_expire_at).to be_nil
end end
end end
...@@ -977,7 +977,7 @@ describe API::Jobs do ...@@ -977,7 +977,7 @@ describe API::Jobs do
let(:job) { create(:ci_build, project: project, pipeline: pipeline) } let(:job) { create(:ci_build, project: project, pipeline: pipeline) }
it 'responds with not found' do it 'responds with not found' do
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
...@@ -992,7 +992,7 @@ describe API::Jobs do ...@@ -992,7 +992,7 @@ describe API::Jobs do
context 'when user is authorized to trigger a manual action' do context 'when user is authorized to trigger a manual action' do
it 'plays the job' do it 'plays the job' do
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['user']['id']).to eq(user.id) expect(json_response['user']['id']).to eq(user.id)
expect(json_response['id']).to eq(job.id) expect(json_response['id']).to eq(job.id)
expect(job.reload).to be_pending expect(job.reload).to be_pending
...@@ -1005,7 +1005,7 @@ describe API::Jobs do ...@@ -1005,7 +1005,7 @@ describe API::Jobs do
it 'does not trigger a manual action' do it 'does not trigger a manual action' do
expect(job.reload).to be_manual expect(job.reload).to be_manual
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
...@@ -1014,7 +1014,7 @@ describe API::Jobs do ...@@ -1014,7 +1014,7 @@ describe API::Jobs do
it 'does not trigger a manual action' do it 'does not trigger a manual action' do
expect(job.reload).to be_manual expect(job.reload).to be_manual
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
end end
end end
...@@ -1022,7 +1022,7 @@ describe API::Jobs do ...@@ -1022,7 +1022,7 @@ describe API::Jobs do
context 'on a non-playable job' do context 'on a non-playable job' do
it 'returns a status code 400, Bad Request' do it 'returns a status code 400, Bad Request' do
expect(response).to have_gitlab_http_status 400 expect(response).to have_gitlab_http_status(:bad_request)
expect(response.body).to match("Unplayable Job") expect(response.body).to match("Unplayable Job")
end end
end end
......
...@@ -12,21 +12,21 @@ describe API::Keys do ...@@ -12,21 +12,21 @@ describe API::Keys do
context 'when unauthenticated' do context 'when unauthenticated' do
it 'returns authentication error' do it 'returns authentication error' do
get api("/keys/#{key.id}") get api("/keys/#{key.id}")
expect(response).to have_gitlab_http_status(401) expect(response).to have_gitlab_http_status(:unauthorized)
end end
end end
context 'when authenticated' do context 'when authenticated' do
it 'returns 404 for non-existing key' do it 'returns 404 for non-existing key' do
get api('/keys/0', admin) get api('/keys/0', admin)
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') expect(json_response['message']).to eq('404 Not found')
end end
it 'returns single ssh key with user information' do it 'returns single ssh key with user information' do
user.keys << key user.keys << key
get api("/keys/#{key.id}", admin) get api("/keys/#{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(key.title) expect(json_response['title']).to eq(key.title)
expect(json_response['user']['id']).to eq(user.id) expect(json_response['user']['id']).to eq(user.id)
expect(json_response['user']['username']).to eq(user.username) expect(json_response['user']['username']).to eq(user.username)
...@@ -44,27 +44,27 @@ describe API::Keys do ...@@ -44,27 +44,27 @@ describe API::Keys do
it 'returns authentication error' do it 'returns authentication error' do
get api("/keys?fingerprint=#{key.fingerprint}") get api("/keys?fingerprint=#{key.fingerprint}")
expect(response).to have_gitlab_http_status(401) expect(response).to have_gitlab_http_status(:unauthorized)
end end
it 'returns authentication error when authenticated as user' do it 'returns authentication error when authenticated as user' do
get api("/keys?fingerprint=#{key.fingerprint}", user) get api("/keys?fingerprint=#{key.fingerprint}", user)
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
context 'when authenticated as admin' do context 'when authenticated as admin' do
it 'returns 404 for non-existing SSH md5 fingerprint' do it 'returns 404 for non-existing SSH md5 fingerprint' do
get api("/keys?fingerprint=11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11", admin) get api("/keys?fingerprint=11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11", admin)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
expect(json_response['message']).to eq('404 Key Not Found') expect(json_response['message']).to eq('404 Key Not Found')
end end
it 'returns 404 for non-existing SSH sha256 fingerprint' do it 'returns 404 for non-existing SSH sha256 fingerprint' do
get api("/keys?fingerprint=#{URI.encode_www_form_component("SHA256:nUhzNyftwADy8AH3wFY31tAKs7HufskYTte2aXo1lCg")}", admin) get api("/keys?fingerprint=#{URI.encode_www_form_component("SHA256:nUhzNyftwADy8AH3wFY31tAKs7HufskYTte2aXo1lCg")}", admin)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
expect(json_response['message']).to eq('404 Key Not Found') expect(json_response['message']).to eq('404 Key Not Found')
end end
...@@ -73,7 +73,7 @@ describe API::Keys do ...@@ -73,7 +73,7 @@ describe API::Keys do
get api("/keys?fingerprint=#{key.fingerprint}", admin) get api("/keys?fingerprint=#{key.fingerprint}", admin)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['title']).to eq(key.title) expect(json_response['title']).to eq(key.title)
expect(json_response['user']['id']).to eq(user.id) expect(json_response['user']['id']).to eq(user.id)
expect(json_response['user']['username']).to eq(user.username) expect(json_response['user']['username']).to eq(user.username)
...@@ -84,7 +84,7 @@ describe API::Keys do ...@@ -84,7 +84,7 @@ describe API::Keys do
get api("/keys?fingerprint=#{URI.encode_www_form_component("SHA256:" + key.fingerprint_sha256)}", admin) get api("/keys?fingerprint=#{URI.encode_www_form_component("SHA256:" + key.fingerprint_sha256)}", admin)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['title']).to eq(key.title) expect(json_response['title']).to eq(key.title)
expect(json_response['user']['id']).to eq(user.id) expect(json_response['user']['id']).to eq(user.id)
expect(json_response['user']['username']).to eq(user.username) expect(json_response['user']['username']).to eq(user.username)
...@@ -95,7 +95,7 @@ describe API::Keys do ...@@ -95,7 +95,7 @@ describe API::Keys do
get api("/keys?fingerprint=#{URI.encode_www_form_component("sha256:" + key.fingerprint_sha256)}", admin) get api("/keys?fingerprint=#{URI.encode_www_form_component("sha256:" + key.fingerprint_sha256)}", admin)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['title']).to eq(key.title) expect(json_response['title']).to eq(key.title)
expect(json_response['user']['id']).to eq(user.id) expect(json_response['user']['id']).to eq(user.id)
expect(json_response['user']['username']).to eq(user.username) expect(json_response['user']['username']).to eq(user.username)
...@@ -125,7 +125,7 @@ describe API::Keys do ...@@ -125,7 +125,7 @@ describe API::Keys do
get api("/keys?fingerprint=#{URI.encode_www_form_component("SHA256:" + deploy_key.fingerprint_sha256)}", admin) get api("/keys?fingerprint=#{URI.encode_www_form_component("SHA256:" + deploy_key.fingerprint_sha256)}", 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) expect(json_response['title']).to eq(deploy_key.title)
expect(json_response['user']['id']).to eq(user.id) expect(json_response['user']['id']).to eq(user.id)
......
...@@ -27,7 +27,7 @@ describe API::Labels do ...@@ -27,7 +27,7 @@ describe API::Labels do
it "returns 200 if name is changed (#{route_type} route)" do it "returns 200 if name is changed (#{route_type} route)" do
put_labels_api(route_type, user, spec_params, new_name: 'New Label') put_labels_api(route_type, user, spec_params, new_name: 'New Label')
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['name']).to eq('New Label') expect(json_response['name']).to eq('New Label')
expect(json_response['color']).to eq(label1.color) expect(json_response['color']).to eq(label1.color)
end end
...@@ -35,7 +35,7 @@ describe API::Labels do ...@@ -35,7 +35,7 @@ describe API::Labels do
it "returns 200 if colors is changed (#{route_type} route)" do it "returns 200 if colors is changed (#{route_type} route)" do
put_labels_api(route_type, user, spec_params, color: '#FFFFFF') put_labels_api(route_type, user, spec_params, color: '#FFFFFF')
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['name']).to eq(label1.name) expect(json_response['name']).to eq(label1.name)
expect(json_response['color']).to eq('#FFFFFF') expect(json_response['color']).to eq('#FFFFFF')
end end
...@@ -51,7 +51,7 @@ describe API::Labels do ...@@ -51,7 +51,7 @@ describe API::Labels do
it "returns 400 if no new parameters given (#{route_type} route)" do it "returns 400 if no new parameters given (#{route_type} route)" do
put_labels_api(route_type, user, spec_params) put_labels_api(route_type, user, spec_params)
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['error']).to eq('new_name, color, description, priority are missing, '\ expect(json_response['error']).to eq('new_name, color, description, priority are missing, '\
'at least one parameter must be provided') 'at least one parameter must be provided')
end end
...@@ -59,27 +59,27 @@ describe API::Labels do ...@@ -59,27 +59,27 @@ describe API::Labels do
it "returns 400 when color code is too short (#{route_type} route)" do it "returns 400 when color code is too short (#{route_type} route)" do
put_labels_api(route_type, user, spec_params, color: '#FF') put_labels_api(route_type, user, spec_params, color: '#FF')
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['message']['color']).to eq(['must be a valid color code']) expect(json_response['message']['color']).to eq(['must be a valid color code'])
end end
it "returns 400 for too long color code (#{route_type} route)" do it "returns 400 for too long color code (#{route_type} route)" do
put_labels_api(route_type, user, spec_params, color: '#FFAAFFFF') put_labels_api(route_type, user, spec_params, color: '#FFAAFFFF')
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['message']['color']).to eq(['must be a valid color code']) expect(json_response['message']['color']).to eq(['must be a valid color code'])
end end
it "returns 400 for invalid priority (#{route_type} route)" do it "returns 400 for invalid priority (#{route_type} route)" do
put_labels_api(route_type, user, spec_params, priority: 'foo') put_labels_api(route_type, user, spec_params, priority: 'foo')
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
it "returns 200 if name and colors and description are changed (#{route_type} route)" do it "returns 200 if name and colors and description are changed (#{route_type} route)" do
put_labels_api(route_type, user, spec_params, new_name: 'New Label', color: '#FFFFFF', description: 'test') put_labels_api(route_type, user, spec_params, new_name: 'New Label', color: '#FFFFFF', description: 'test')
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['name']).to eq('New Label') expect(json_response['name']).to eq('New Label')
expect(json_response['color']).to eq('#FFFFFF') expect(json_response['color']).to eq('#FFFFFF')
expect(json_response['description']).to eq('test') expect(json_response['description']).to eq('test')
...@@ -88,14 +88,14 @@ describe API::Labels do ...@@ -88,14 +88,14 @@ describe API::Labels do
it "returns 400 for invalid name (#{route_type} route)" do it "returns 400 for invalid name (#{route_type} route)" do
put_labels_api(route_type, user, spec_params, new_name: ',', color: '#FFFFFF') put_labels_api(route_type, user, spec_params, new_name: ',', color: '#FFFFFF')
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['message']['title']).to eq(['is invalid']) expect(json_response['message']['title']).to eq(['is invalid'])
end end
it "returns 200 if description is changed (#{route_type} route)" do it "returns 200 if description is changed (#{route_type} route)" do
put_labels_api(route_type, user, spec_params, description: 'test') put_labels_api(route_type, user, spec_params, description: 'test')
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['id']).to eq(expected_response_label_id) expect(json_response['id']).to eq(expected_response_label_id)
expect(json_response['description']).to eq('test') expect(json_response['description']).to eq('test')
end end
...@@ -162,14 +162,14 @@ describe API::Labels do ...@@ -162,14 +162,14 @@ describe API::Labels do
it 'returns 204 for existing label (deprecated route)' do it 'returns 204 for existing label (deprecated route)' do
delete api("/projects/#{project.id}/labels", user), params: spec_params delete api("/projects/#{project.id}/labels", user), params: spec_params
expect(response).to have_gitlab_http_status(204) expect(response).to have_gitlab_http_status(:no_content)
end end
it 'returns 204 for existing label (rest route)' do it 'returns 204 for existing label (rest route)' do
label_id = spec_params[:name] || spec_params[:label_id] label_id = spec_params[:name] || spec_params[:label_id]
delete api("/projects/#{project.id}/labels/#{label_id}", user), params: spec_params.except(:name, :label_id) delete api("/projects/#{project.id}/labels/#{label_id}", user), params: spec_params.except(:name, :label_id)
expect(response).to have_gitlab_http_status(204) expect(response).to have_gitlab_http_status(:no_content)
end end
end end
...@@ -188,7 +188,7 @@ describe API::Labels do ...@@ -188,7 +188,7 @@ describe API::Labels do
it 'returns all available labels to the project' do it 'returns all available labels to the project' do
get api("/projects/#{project.id}/labels", user) get api("/projects/#{project.id}/labels", user)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to all(match_schema('public_api/v4/labels/project_label')) expect(json_response).to all(match_schema('public_api/v4/labels/project_label'))
expect(json_response.size).to eq(3) expect(json_response.size).to eq(3)
...@@ -205,7 +205,7 @@ describe API::Labels do ...@@ -205,7 +205,7 @@ describe API::Labels do
it 'includes counts in the response' do it 'includes counts in the response' do
get api("/projects/#{project.id}/labels", user), params: { with_counts: true } get api("/projects/#{project.id}/labels", user), params: { with_counts: true }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to all(match_schema('public_api/v4/labels/project_label_with_counts')) expect(json_response).to all(match_schema('public_api/v4/labels/project_label_with_counts'))
expect(json_response.size).to eq(3) expect(json_response.size).to eq(3)
...@@ -264,7 +264,7 @@ describe API::Labels do ...@@ -264,7 +264,7 @@ describe API::Labels do
it 'returns all available labels for the project, parent group and ancestor groups' do it 'returns all available labels for the project, parent group and ancestor groups' do
get api("/projects/#{project.id}/labels", user) get api("/projects/#{project.id}/labels", user)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response).to all(match_schema('public_api/v4/labels/label')) expect(json_response).to all(match_schema('public_api/v4/labels/label'))
...@@ -287,7 +287,7 @@ describe API::Labels do ...@@ -287,7 +287,7 @@ describe API::Labels do
it 'returns all available labels for the project and the parent group only' do it 'returns all available labels for the project and the parent group only' do
get api("/projects/#{project.id}/labels", user), params: { include_ancestor_groups: false } get api("/projects/#{project.id}/labels", user), params: { include_ancestor_groups: false }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers expect(response).to include_pagination_headers
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response).to all(match_schema('public_api/v4/labels/label')) expect(json_response).to all(match_schema('public_api/v4/labels/label'))
...@@ -307,7 +307,7 @@ describe API::Labels do ...@@ -307,7 +307,7 @@ describe API::Labels do
priority: 2 priority: 2
} }
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(json_response['name']).to eq('Foo') expect(json_response['name']).to eq('Foo')
expect(json_response['color']).to eq('#FFAABB') expect(json_response['color']).to eq('#FFAABB')
expect(json_response['description']).to eq('test') expect(json_response['description']).to eq('test')
...@@ -345,12 +345,12 @@ describe API::Labels do ...@@ -345,12 +345,12 @@ describe API::Labels do
it 'returns a 400 bad request if name not given' do it 'returns a 400 bad request if name not given' do
post api("/projects/#{project.id}/labels", user), params: { color: '#FFAABB' } post api("/projects/#{project.id}/labels", user), params: { color: '#FFAABB' }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
it 'returns a 400 bad request if color not given' do it 'returns a 400 bad request if color not given' do
post api("/projects/#{project.id}/labels", user), params: { name: 'Foobar' } post api("/projects/#{project.id}/labels", user), params: { name: 'Foobar' }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
it 'returns 400 for invalid color' do it 'returns 400 for invalid color' do
...@@ -359,7 +359,7 @@ describe API::Labels do ...@@ -359,7 +359,7 @@ describe API::Labels do
name: 'Foo', name: 'Foo',
color: '#FFAA' color: '#FFAA'
} }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['message']['color']).to eq(['must be a valid color code']) expect(json_response['message']['color']).to eq(['must be a valid color code'])
end end
...@@ -369,7 +369,7 @@ describe API::Labels do ...@@ -369,7 +369,7 @@ describe API::Labels do
name: 'Foo', name: 'Foo',
color: '#FFAAFFFF' color: '#FFAAFFFF'
} }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['message']['color']).to eq(['must be a valid color code']) expect(json_response['message']['color']).to eq(['must be a valid color code'])
end end
...@@ -379,7 +379,7 @@ describe API::Labels do ...@@ -379,7 +379,7 @@ describe API::Labels do
name: ',', name: ',',
color: '#FFAABB' color: '#FFAABB'
} }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['message']['title']).to eq(['is invalid']) expect(json_response['message']['title']).to eq(['is invalid'])
end end
...@@ -394,7 +394,7 @@ describe API::Labels do ...@@ -394,7 +394,7 @@ describe API::Labels do
color: '#FFAABB' color: '#FFAABB'
} }
expect(response).to have_gitlab_http_status(409) expect(response).to have_gitlab_http_status(:conflict)
expect(json_response['message']).to eq('Label already exists') expect(json_response['message']).to eq('Label already exists')
end end
...@@ -406,7 +406,7 @@ describe API::Labels do ...@@ -406,7 +406,7 @@ describe API::Labels do
priority: 'foo' priority: 'foo'
} }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
it 'returns 409 if label already exists in project' do it 'returns 409 if label already exists in project' do
...@@ -415,7 +415,7 @@ describe API::Labels do ...@@ -415,7 +415,7 @@ describe API::Labels do
name: 'label1', name: 'label1',
color: '#FFAABB' color: '#FFAABB'
} }
expect(response).to have_gitlab_http_status(409) expect(response).to have_gitlab_http_status(:conflict)
expect(json_response['message']).to eq('Label already exists') expect(json_response['message']).to eq('Label already exists')
end end
end end
...@@ -432,14 +432,14 @@ describe API::Labels do ...@@ -432,14 +432,14 @@ describe API::Labels do
it 'returns 404 for non existing label' do it 'returns 404 for non existing label' do
delete api("/projects/#{project.id}/labels", user), params: { name: 'label2' } delete api("/projects/#{project.id}/labels", user), params: { name: 'label2' }
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
expect(json_response['message']).to eq('404 Label Not Found') expect(json_response['message']).to eq('404 Label Not Found')
end end
it 'returns 400 for wrong parameters' do it 'returns 400 for wrong parameters' do
delete api("/projects/#{project.id}/labels", user) delete api("/projects/#{project.id}/labels", user)
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
it 'fails if label_id and name are given in params' do it 'fails if label_id and name are given in params' do
...@@ -449,7 +449,7 @@ describe API::Labels do ...@@ -449,7 +449,7 @@ describe API::Labels do
name: priority_label.name name: priority_label.name
} }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
it_behaves_like '412 response' do it_behaves_like '412 response' do
...@@ -480,7 +480,7 @@ describe API::Labels do ...@@ -480,7 +480,7 @@ describe API::Labels do
new_name: 'label3' new_name: 'label3'
} }
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
it 'returns 404 if label by id does not exist' do it 'returns 404 if label by id does not exist' do
...@@ -490,13 +490,13 @@ describe API::Labels do ...@@ -490,13 +490,13 @@ describe API::Labels do
new_name: 'label3' new_name: 'label3'
} }
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
it 'returns 400 if no label name and id is given' do it 'returns 400 if no label name and id is given' do
put api("/projects/#{project.id}/labels", user), params: { new_name: 'label2' } put api("/projects/#{project.id}/labels", user), params: { new_name: 'label2' }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['error']).to eq('label_id, name are missing, exactly one parameter must be provided') expect(json_response['error']).to eq('label_id, name are missing, exactly one parameter must be provided')
end end
...@@ -508,7 +508,7 @@ describe API::Labels do ...@@ -508,7 +508,7 @@ describe API::Labels do
new_name: 'New Label' new_name: 'New Label'
} }
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
end end
end end
...@@ -523,7 +523,7 @@ describe API::Labels do ...@@ -523,7 +523,7 @@ describe API::Labels do
it 'returns 200 if label is promoted' do it 'returns 200 if label is promoted' do
put api("/projects/#{project.id}/labels/promote", user), params: { name: label1.name } put api("/projects/#{project.id}/labels/promote", user), params: { name: label1.name }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['name']).to eq(label1.name) expect(json_response['name']).to eq(label1.name)
expect(json_response['color']).to eq(label1.color) expect(json_response['color']).to eq(label1.color)
end end
...@@ -535,7 +535,7 @@ describe API::Labels do ...@@ -535,7 +535,7 @@ describe API::Labels do
.to change(project.labels, :count).by(-1) .to change(project.labels, :count).by(-1)
.and change(group.labels, :count).by(0) .and change(group.labels, :count).by(0)
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
end end
it 'returns 403 if guest promotes label' do it 'returns 403 if guest promotes label' do
...@@ -544,19 +544,19 @@ describe API::Labels do ...@@ -544,19 +544,19 @@ describe API::Labels do
put api("/projects/#{project.id}/labels/promote", guest), params: { name: label1.name } put api("/projects/#{project.id}/labels/promote", guest), params: { name: label1.name }
expect(response).to have_gitlab_http_status(403) expect(response).to have_gitlab_http_status(:forbidden)
end end
it 'returns 404 if label does not exist' do it 'returns 404 if label does not exist' do
put api("/projects/#{project.id}/labels/promote", user), params: { name: 'unknown' } put api("/projects/#{project.id}/labels/promote", user), params: { name: 'unknown' }
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
it 'returns 400 if no label name given' do it 'returns 400 if no label name given' do
put api("/projects/#{project.id}/labels/promote", user) put api("/projects/#{project.id}/labels/promote", user)
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['error']).to eq('name is missing') expect(json_response['error']).to eq('name is missing')
end end
end end
...@@ -566,7 +566,7 @@ describe API::Labels do ...@@ -566,7 +566,7 @@ describe API::Labels do
it "subscribes to the label" do it "subscribes to the label" do
post api("/projects/#{project.id}/labels/#{label1.title}/subscribe", user) post api("/projects/#{project.id}/labels/#{label1.title}/subscribe", user)
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(json_response["name"]).to eq(label1.title) expect(json_response["name"]).to eq(label1.title)
expect(json_response["subscribed"]).to be_truthy expect(json_response["subscribed"]).to be_truthy
end end
...@@ -576,7 +576,7 @@ describe API::Labels do ...@@ -576,7 +576,7 @@ describe API::Labels do
it "subscribes to the label" do it "subscribes to the label" do
post api("/projects/#{project.id}/labels/#{label1.id}/subscribe", user) post api("/projects/#{project.id}/labels/#{label1.id}/subscribe", user)
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(json_response["name"]).to eq(label1.title) expect(json_response["name"]).to eq(label1.title)
expect(json_response["subscribed"]).to be_truthy expect(json_response["subscribed"]).to be_truthy
end end
...@@ -590,7 +590,7 @@ describe API::Labels do ...@@ -590,7 +590,7 @@ describe API::Labels do
it "returns 304" do it "returns 304" do
post api("/projects/#{project.id}/labels/#{label1.id}/subscribe", user) post api("/projects/#{project.id}/labels/#{label1.id}/subscribe", user)
expect(response).to have_gitlab_http_status(304) expect(response).to have_gitlab_http_status(:not_modified)
end end
end end
...@@ -598,7 +598,7 @@ describe API::Labels do ...@@ -598,7 +598,7 @@ describe API::Labels do
it "returns 404 error" do it "returns 404 error" do
post api("/projects/#{project.id}/labels/1234/subscribe", user) post api("/projects/#{project.id}/labels/1234/subscribe", user)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
...@@ -612,7 +612,7 @@ describe API::Labels do ...@@ -612,7 +612,7 @@ describe API::Labels do
it "unsubscribes from the label" do it "unsubscribes from the label" do
post api("/projects/#{project.id}/labels/#{label1.title}/unsubscribe", user) post api("/projects/#{project.id}/labels/#{label1.title}/unsubscribe", user)
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(json_response["name"]).to eq(label1.title) expect(json_response["name"]).to eq(label1.title)
expect(json_response["subscribed"]).to be_falsey expect(json_response["subscribed"]).to be_falsey
end end
...@@ -622,7 +622,7 @@ describe API::Labels do ...@@ -622,7 +622,7 @@ describe API::Labels do
it "unsubscribes from the label" do it "unsubscribes from the label" do
post api("/projects/#{project.id}/labels/#{label1.id}/unsubscribe", user) post api("/projects/#{project.id}/labels/#{label1.id}/unsubscribe", user)
expect(response).to have_gitlab_http_status(201) expect(response).to have_gitlab_http_status(:created)
expect(json_response["name"]).to eq(label1.title) expect(json_response["name"]).to eq(label1.title)
expect(json_response["subscribed"]).to be_falsey expect(json_response["subscribed"]).to be_falsey
end end
...@@ -636,7 +636,7 @@ describe API::Labels do ...@@ -636,7 +636,7 @@ describe API::Labels do
it "returns 304" do it "returns 304" do
post api("/projects/#{project.id}/labels/#{label1.id}/unsubscribe", user) post api("/projects/#{project.id}/labels/#{label1.id}/unsubscribe", user)
expect(response).to have_gitlab_http_status(304) expect(response).to have_gitlab_http_status(:not_modified)
end end
end end
...@@ -644,7 +644,7 @@ describe API::Labels do ...@@ -644,7 +644,7 @@ describe API::Labels do
it "returns 404 error" do it "returns 404 error" do
post api("/projects/#{project.id}/labels/1234/unsubscribe", user) post api("/projects/#{project.id}/labels/1234/unsubscribe", user)
expect(response).to have_gitlab_http_status(404) expect(response).to have_gitlab_http_status(:not_found)
end end
end end
end end
......
...@@ -12,7 +12,7 @@ describe API::Lint do ...@@ -12,7 +12,7 @@ describe API::Lint do
it 'passes validation' do it 'passes validation' do
post api('/ci/lint'), params: { content: yaml_content } post api('/ci/lint'), params: { content: yaml_content }
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).to be_an Hash
expect(json_response['status']).to eq('valid') expect(json_response['status']).to eq('valid')
expect(json_response['errors']).to eq([]) expect(json_response['errors']).to eq([])
...@@ -23,7 +23,7 @@ describe API::Lint do ...@@ -23,7 +23,7 @@ describe API::Lint do
it 'responds with errors about invalid syntax' do it 'responds with errors about invalid syntax' do
post api('/ci/lint'), params: { content: 'invalid content' } post api('/ci/lint'), params: { content: 'invalid content' }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['status']).to eq('invalid') expect(json_response['status']).to eq('invalid')
expect(json_response['errors']).to eq(['Invalid configuration format']) expect(json_response['errors']).to eq(['Invalid configuration format'])
end end
...@@ -31,7 +31,7 @@ describe API::Lint do ...@@ -31,7 +31,7 @@ describe API::Lint do
it "responds with errors about invalid configuration" do it "responds with errors about invalid configuration" do
post api('/ci/lint'), params: { content: '{ image: "ruby:2.1", services: ["postgres"] }' } post api('/ci/lint'), params: { content: '{ image: "ruby:2.1", services: ["postgres"] }' }
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(:ok)
expect(json_response['status']).to eq('invalid') expect(json_response['status']).to eq('invalid')
expect(json_response['errors']).to eq(['jobs config should contain at least one visible job']) expect(json_response['errors']).to eq(['jobs config should contain at least one visible job'])
end end
...@@ -41,7 +41,7 @@ describe API::Lint do ...@@ -41,7 +41,7 @@ describe API::Lint do
it 'responds with validation error about missing content' do it 'responds with validation error about missing content' do
post api('/ci/lint') post api('/ci/lint')
expect(response).to have_gitlab_http_status(400) expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['error']).to eq('content is missing') expect(json_response['error']).to eq('content is missing')
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment