Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-01-28 15:08:44 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-28 15:08:44 +0300
commitdb24ab2b72dbff24c201410a0561e929ae7e8061 (patch)
tree67297286aad8cc590ae325330a0bfe1e2a7e51dc
parent7e8278c0f46cf6058efad5afd0aef177977bd663 (diff)
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--.rubocop.yml2
-rw-r--r--app/assets/javascripts/pages/projects/init_blob.js2
-rw-r--r--app/controllers/sent_notifications_controller.rb14
-rw-r--r--changelogs/unreleased/199034-nomethoderror-undefined-method-unsubscribe-for-nil-nilclass.yml5
-rw-r--r--changelogs/unreleased/nfriend-31374-fix-permalink-button.yml5
-rw-r--r--doc/administration/packages/index.md2
-rw-r--r--doc/development/documentation/styleguide.md49
-rw-r--r--doc/development/packages.md23
-rw-r--r--doc/user/packages/index.md24
-rw-r--r--lib/api/group_export.rb2
-rw-r--r--lib/api/search.rb6
-rw-r--r--qa/qa/flow/login.rb6
-rw-r--r--qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb2
-rw-r--r--spec/controllers/projects/artifacts_controller_spec.rb8
-rw-r--r--spec/controllers/projects/autocomplete_sources_controller_spec.rb2
-rw-r--r--spec/controllers/projects/avatars_controller_spec.rb4
-rw-r--r--spec/controllers/projects/blob_controller_spec.rb4
-rw-r--r--spec/controllers/projects/boards_controller_spec.rb12
-rw-r--r--spec/controllers/projects/branches_controller_spec.rb40
-rw-r--r--spec/controllers/projects/clusters_controller_spec.rb4
-rw-r--r--spec/controllers/projects/commit_controller_spec.rb12
-rw-r--r--spec/controllers/projects/compare_controller_spec.rb20
-rw-r--r--spec/controllers/projects/deploy_keys_controller_spec.rb20
-rw-r--r--spec/controllers/projects/deployments_controller_spec.rb6
-rw-r--r--spec/controllers/projects/discussions_controller_spec.rb20
-rw-r--r--spec/controllers/projects/environments_controller_spec.rb22
-rw-r--r--spec/controllers/projects/forks_controller_spec.rb8
-rw-r--r--spec/controllers/projects/group_links_controller_spec.rb2
-rw-r--r--spec/controllers/projects/hooks_controller_spec.rb2
-rw-r--r--spec/controllers/projects/issues_controller_spec.rb58
-rw-r--r--spec/controllers/projects/jobs_controller_spec.rb4
-rw-r--r--spec/controllers/projects/labels_controller_spec.rb18
-rw-r--r--spec/controllers/projects/mattermosts_controller_spec.rb2
-rw-r--r--spec/controllers/projects/merge_requests_controller_spec.rb30
-rw-r--r--spec/controllers/projects/milestones_controller_spec.rb16
-rw-r--r--spec/controllers/projects/mirrors_controller_spec.rb8
-rw-r--r--spec/controllers/projects/notes_controller_spec.rb66
-rw-r--r--spec/controllers/projects/pages_controller_spec.rb12
-rw-r--r--spec/controllers/projects/pages_domains_controller_spec.rb18
-rw-r--r--spec/controllers/projects/pipeline_schedules_controller_spec.rb10
-rw-r--r--spec/controllers/projects/pipelines_controller_spec.rb14
-rw-r--r--spec/controllers/projects/pipelines_settings_controller_spec.rb2
-rw-r--r--spec/controllers/projects/project_members_controller_spec.rb16
-rw-r--r--spec/controllers/projects/raw_controller_spec.rb26
-rw-r--r--spec/controllers/projects/repositories_controller_spec.rb26
-rw-r--r--spec/controllers/projects/runners_controller_spec.rb8
-rw-r--r--spec/controllers/projects/snippets_controller_spec.rb24
-rw-r--r--spec/controllers/projects/stages_controller_spec.rb2
-rw-r--r--spec/controllers/projects/templates_controller_spec.rb4
-rw-r--r--spec/controllers/projects/todos_controller_spec.rb2
-rw-r--r--spec/controllers/projects/tree_controller_spec.rb2
-rw-r--r--spec/controllers/projects/uploads_controller_spec.rb2
-rw-r--r--spec/controllers/projects/usage_ping_controller_spec.rb6
-rw-r--r--spec/controllers/projects/wikis_controller_spec.rb10
-rw-r--r--spec/controllers/sent_notifications_controller_spec.rb42
-rw-r--r--spec/features/projects/blobs/blob_line_permalink_updater_spec.rb22
-rw-r--r--spec/frontend/ide/components/branches/item_spec.js66
-rw-r--r--spec/frontend/ide/components/jobs/detail/scroll_button_spec.js67
-rw-r--r--spec/frontend/ide/components/preview/navigator_spec.js226
-rw-r--r--spec/requests/api/group_export_spec.rb80
60 files changed, 677 insertions, 540 deletions
diff --git a/.rubocop.yml b/.rubocop.yml
index 2e8a7d57bca..46419e69e7e 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -347,6 +347,8 @@ RSpec/HaveGitlabHttpStatus:
- 'ee/spec/features/**/*'
- 'spec/controllers/*.rb'
- 'ee/spec/controllers/*.rb'
+ - 'spec/controllers/projects/*.rb'
+ - 'ee/spec/controllers/projects/*.rb'
- 'spec/requests/*.rb'
- 'ee/spec/requests/*.rb'
diff --git a/app/assets/javascripts/pages/projects/init_blob.js b/app/assets/javascripts/pages/projects/init_blob.js
index e862456f429..5eb0d323266 100644
--- a/app/assets/javascripts/pages/projects/init_blob.js
+++ b/app/assets/javascripts/pages/projects/init_blob.js
@@ -11,7 +11,7 @@ export default () => {
// eslint-disable-next-line no-new
new BlobLinePermalinkUpdater(
document.querySelector('#blob-content-holder'),
- '.diff-line-num[data-line-number]',
+ '.diff-line-num[data-line-number], .diff-line-num[data-line-number] *',
document.querySelectorAll('.js-data-file-blob-permalink-url, .js-blob-blame-link'),
);
diff --git a/app/controllers/sent_notifications_controller.rb b/app/controllers/sent_notifications_controller.rb
index 893f5145e99..20134de81a0 100644
--- a/app/controllers/sent_notifications_controller.rb
+++ b/app/controllers/sent_notifications_controller.rb
@@ -6,14 +6,24 @@ class SentNotificationsController < ApplicationController
def unsubscribe
@sent_notification = SentNotification.for(params[:id])
- return render_404 unless @sent_notification && @sent_notification.unsubscribable?
+ return render_404 unless unsubscribe_prerequisites_met?
+
return unsubscribe_and_redirect if current_user || params[:force]
end
private
+ def unsubscribe_prerequisites_met?
+ @sent_notification.present? &&
+ @sent_notification.unsubscribable? &&
+ noteable.present?
+ end
+
+ def noteable
+ @sent_notification.noteable
+ end
+
def unsubscribe_and_redirect
- noteable = @sent_notification.noteable
noteable.unsubscribe(@sent_notification.recipient, @sent_notification.project)
flash[:notice] = _("You have been unsubscribed from this thread.")
diff --git a/changelogs/unreleased/199034-nomethoderror-undefined-method-unsubscribe-for-nil-nilclass.yml b/changelogs/unreleased/199034-nomethoderror-undefined-method-unsubscribe-for-nil-nilclass.yml
new file mode 100644
index 00000000000..a63be414b84
--- /dev/null
+++ b/changelogs/unreleased/199034-nomethoderror-undefined-method-unsubscribe-for-nil-nilclass.yml
@@ -0,0 +1,5 @@
+---
+title: Fix 500 error when trying to unsubscribe from an already deleted entity
+merge_request: 23747
+author:
+type: fixed
diff --git a/changelogs/unreleased/nfriend-31374-fix-permalink-button.yml b/changelogs/unreleased/nfriend-31374-fix-permalink-button.yml
new file mode 100644
index 00000000000..1f10a066a9a
--- /dev/null
+++ b/changelogs/unreleased/nfriend-31374-fix-permalink-button.yml
@@ -0,0 +1,5 @@
+---
+title: Fix hash parameter of Permalink and Blame button
+merge_request: 23713
+author:
+type: fixed
diff --git a/doc/administration/packages/index.md b/doc/administration/packages/index.md
index 432e72e03e3..2d2a6f3de3a 100644
--- a/doc/administration/packages/index.md
+++ b/doc/administration/packages/index.md
@@ -15,7 +15,7 @@ The Packages feature allows GitLab to act as a repository for the following:
Don't you see your package management system supported yet?
Please consider contributing
-to GitLab. This [development documentation](../../development/packages.md) will guide you through the process, it includes a list of [suggested contributions](../../development/packages.md#suggested-contributions).
+to GitLab. This [development documentation](../../development/packages.md) will guide you through the process.
## Enabling the Packages feature
diff --git a/doc/development/documentation/styleguide.md b/doc/development/documentation/styleguide.md
index 5dddb47a033..063f2b74ce2 100644
--- a/doc/development/documentation/styleguide.md
+++ b/doc/development/documentation/styleguide.md
@@ -77,7 +77,7 @@ and cross-link between any related content.
We employ a **docs-first methodology** to help ensure that the docs remain a complete and trusted resource, and to make communicating about the use of GitLab more efficient.
- If the answer to a question exists in documentation, share the link to the docs instead of rephrasing the information.
-- When you encounter new information not available in GitLab’s documentation (for example, when working on a support case or testing a feature), your first step should be to create a merge request to add this information to the docs. You can then share the MR in order to communicate this information.
+- When you encounter new information not available in GitLab’s documentation (for example, when working on a support case or testing a feature), your first step should be to create a merge request (MR) to add this information to the docs. You can then share the MR in order to communicate this information.
New information that would be useful toward the future usage or troubleshooting of GitLab should not be written directly in a forum or other messaging system, but added to a docs MR and then referenced, as described above. Note that among any other doc changes, you can always add a Troubleshooting section to a doc if none exists, or un-comment and use the placeholder Troubleshooting section included as part of our [doc template](structure.md#template-for-new-docs), if present.
@@ -525,6 +525,35 @@ For other punctuation rules, please refer to the
- Use sentence case in headings. Do not capitalize the words of the title, unless
it refers to a product feature. For example, capitalizing "issues" is acceptable in
`## What you can do with GitLab Issues`, but not in `## Closing multiple issues`.
+- Our docs site search engine prioritizes headings, therefore, make sure to write
+ headings that contextualize the subject and help to take the user to the right
+ document. For example, `## Examples` is a bad heading; `## GitLab Pages examples`
+ is a better one. It's not an exact science, but please consider this carefully.
+
+### Anchor links
+
+Headings generate anchor links automatically when rendered. `## This is an example`
+generates the anchor `#this-is-an-example`.
+
+Keep in mind that the GitLab UI links to a large number of docs and respective
+anchor links to take the user to the right spot. Therefore, when you change a
+heading, search `doc/*`, `app/views/*`, and `ee/app/views/*` for the old anchor
+to make sure you're not breaking an anchor linked from other docs nor from the
+GitLab UI. If you find the old anchor, make sure to replace it with the new one.
+
+Important:
+
+- Avoid crosslinking docs to headings unless you need to link to a specific section
+ of the document. This will avoid breaking anchors in the future in case the heading
+ is changed.
+- If possible, avoid changing headings since they're not only linked internally.
+ There are various links to GitLab documentation on the internet, such as tutorials,
+ presentations, StackOverflow posts, and other sources.
+- Do not link to `h1` headings.
+
+Note that, with Kramdown, it is possible to add a custom ID to an HTML element
+with Markdown markup, but they **do not** work in GitLab's `/help`. Therefore,
+do not use this option until further notice.
## Links
@@ -953,6 +982,24 @@ Which renders to:
To maintain consistency through GitLab documentation, the following guides documentation authors
on agreed styles and usage of terms.
+### Merge Requests (MRs)
+
+Merge requests allow you to exchange changes you made to source code and collaborate
+with other people on the same project. You'll see this term used in the following ways:
+
+- If you're referring to the feature, use **Merge Request**.
+- In any other context, use **merge request**.
+
+As noted in our corporate [Writing Style Guidelines](https://about.gitlab.com/handbook/communication/#writing-style-guidelines),
+if you use the **MR** acronym, expand it at least once per document page.
+For example, the first time you specify a MR, specify either _Merge Request (MR)_ or _merge request (MR)_.
+
+Examples:
+
+- "We prefer GitLab Merge Requests".
+- "Open a merge request to fix a broken link".
+- "After you open a merge request (MR), submit your MR for review and approval".
+
### Describing UI elements
The following are styles to follow when describing UI elements on a screen:
diff --git a/doc/development/packages.md b/doc/development/packages.md
index 980c1869a0a..8722bb1e710 100644
--- a/doc/development/packages.md
+++ b/doc/development/packages.md
@@ -14,29 +14,6 @@ by looking at existing merge requests with Maven and NPM support:
- [Maven repository](https://gitlab.com/gitlab-org/gitlab/merge_requests/6607).
- [Instance level endpoint for Maven repository](https://gitlab.com/gitlab-org/gitlab/merge_requests/8757)
-## Suggested contributions
-
-The goal of the Package group is to build a set of features that, within three years, will allow ninety percent of our customers to store all of their packages in GitLab. To do that we need to ensure that we support the below package manager formats.
-
-| Format | Use case |
-| ------ | ------ |
-| [Bower](https://gitlab.com/gitlab-org/gitlab/issues/36888) | Boost your front end development by hosting your own Bower components. |
-| [Cargo](https://gitlab.com/gitlab-org/gitlab/issues/33060) | Cargo is the Rust package manager. Build, publish and share Rust packages |
-| [Chef](https://gitlab.com/gitlab-org/gitlab/issues/36889) | Configuration management with Chef using all the benefits of a repository manager. |
-| [CocoaPods](https://gitlab.com/gitlab-org/gitlab/issues/36890) | Speed up development with Xcode and CocoaPods. |
-| [Conda](https://gitlab.com/gitlab-org/gitlab/issues/36891) | Secure and private local Conda repositories. |
-| [CRAN](https://gitlab.com/gitlab-org/gitlab/issues/36892) | Deploy and resolve CRAN packages for the R language. |
-| [Debian](https://gitlab.com/gitlab-org/gitlab/issues/5835) | Host and provision Debian packages. |
-| [Go](https://gitlab.com/gitlab-org/gitlab/issues/9773) | Resolve Go dependencies from and publish your Go packages to GitLab. |
-| [Opkg](https://gitlab.com/gitlab-org/gitlab/issues/36894) | Optimize your work with OpenWrt using Opkg repositories. |
-| [P2](https://gitlab.com/gitlab-org/gitlab/issues/36895) | Host all your Eclipse plugins in your own GitLab P2 repository. |
-| [Puppet](https://gitlab.com/gitlab-org/gitlab/issues/36897) | Configuration management meets repository management with Puppet repositories. |
-| [PyPi](https://gitlab.com/gitlab-org/gitlab/issues/10483) | Host PyPi distributions. |
-| [RPM](https://gitlab.com/gitlab-org/gitlab/issues/5932) | Distribute RPMs directly from GitLab. |
-| [RubyGems](https://gitlab.com/gitlab-org/gitlab/issues/803) | Use GitLab to host your own gems. |
-| [SBT](https://gitlab.com/gitlab-org/gitlab/issues/36898) | Resolve dependencies from and deploy build output to SBT repositories when running SBT builds. |
-| [Vagrant](https://gitlab.com/gitlab-org/gitlab/issues/36899) | Securely host your Vagrant boxes in local repositories. |
-
## General information
The existing database model requires the following:
diff --git a/doc/user/packages/index.md b/doc/user/packages/index.md
index 80a3b1e1392..07bcba53e96 100644
--- a/doc/user/packages/index.md
+++ b/doc/user/packages/index.md
@@ -15,13 +15,29 @@ The Packages feature allows GitLab to act as a repository for the following:
| [NPM Registry](npm_registry/index.md) **(PREMIUM)** | The GitLab NPM Registry enables every project in GitLab to have its own space to store [NPM](https://www.npmjs.com/) packages. | 11.7+ |
| [NuGet Repository](nuget_repository/index.md) **(PREMIUM)** | *PLANNED* The GitLab NuGet Repository will enable every project in GitLab to have its own space to store [NuGet](https://www.nuget.org/) packages. | 12.8+ |
-TIP: **Tip:**
-Don't you see your package management system supported yet? Consider contributing
-to GitLab. This [development documentation](../../development/packages.md) will
+## Suggested contributions
+
+Consider contributing to GitLab. This [development documentation](../../development/packages.md) will
guide you through the process. Or check out how other members of the community
are adding support for [PHP](https://gitlab.com/gitlab-org/gitlab/merge_requests/17417) or [Terraform](https://gitlab.com/gitlab-org/gitlab/merge_requests/18834).
-NOTE: **Note** We are especially interested in adding support for [PyPi](https://gitlab.com/gitlab-org/gitlab/issues/10483), [RubyGems](https://gitlab.com/gitlab-org/gitlab/issues/803), [Debian](https://gitlab.com/gitlab-org/gitlab/issues/5835), and [RPM](https://gitlab.com/gitlab-org/gitlab/issues/5932).
+| Format | Use case |
+| ------ | ------ |
+| [Cargo](https://gitlab.com/gitlab-org/gitlab/issues/33060) | Cargo is the Rust package manager. Build, publish and share Rust packages |
+| [Chef](https://gitlab.com/gitlab-org/gitlab/issues/36889) | Configuration management with Chef using all the benefits of a repository manager. |
+| [CocoaPods](https://gitlab.com/gitlab-org/gitlab/issues/36890) | Speed up development with Xcode and CocoaPods. |
+| [Conda](https://gitlab.com/gitlab-org/gitlab/issues/36891) | Secure and private local Conda repositories. |
+| [CRAN](https://gitlab.com/gitlab-org/gitlab/issues/36892) | Deploy and resolve CRAN packages for the R language. |
+| [Debian](https://gitlab.com/gitlab-org/gitlab/issues/5835) | Host and provision Debian packages. |
+| [Go](https://gitlab.com/gitlab-org/gitlab/issues/9773) | Resolve Go dependencies from and publish your Go packages to GitLab. |
+| [Opkg](https://gitlab.com/gitlab-org/gitlab/issues/36894) | Optimize your work with OpenWrt using Opkg repositories. |
+| [P2](https://gitlab.com/gitlab-org/gitlab/issues/36895) | Host all your Eclipse plugins in your own GitLab P2 repository. |
+| [Puppet](https://gitlab.com/gitlab-org/gitlab/issues/36897) | Configuration management meets repository management with Puppet repositories. |
+| [PyPi](https://gitlab.com/gitlab-org/gitlab/issues/10483) | Host PyPi distributions. |
+| [RPM](https://gitlab.com/gitlab-org/gitlab/issues/5932) | Distribute RPMs directly from GitLab. |
+| [RubyGems](https://gitlab.com/gitlab-org/gitlab/issues/803) | Use GitLab to host your own gems. |
+| [SBT](https://gitlab.com/gitlab-org/gitlab/issues/36898) | Resolve dependencies from and deploy build output to SBT repositories when running SBT builds. |
+| [Vagrant](https://gitlab.com/gitlab-org/gitlab/issues/36899) | Securely host your Vagrant boxes in local repositories. |
## Package workflows
diff --git a/lib/api/group_export.rb b/lib/api/group_export.rb
index 8025a16e191..4d32212b8eb 100644
--- a/lib/api/group_export.rb
+++ b/lib/api/group_export.rb
@@ -3,6 +3,8 @@
module API
class GroupExport < Grape::API
before do
+ not_found! unless Feature.enabled?(:group_import_export, user_group, default_enabled: true)
+
authorize! :admin_group, user_group
end
diff --git a/lib/api/search.rb b/lib/api/search.rb
index 50f930c7c7c..6b74158930a 100644
--- a/lib/api/search.rb
+++ b/lib/api/search.rb
@@ -47,7 +47,7 @@ module API
SCOPE_ENTITY[params[:scope].to_sym]
end
- def verify_search_scope!
+ def verify_search_scope!(resource:)
# In EE we have additional validation requirements for searches.
# Defining this method here as a noop allows us to easily extend it in
# EE, without having to modify this file directly.
@@ -73,7 +73,7 @@ module API
use :pagination
end
get do
- verify_search_scope!
+ verify_search_scope!(resource: nil)
check_users_search_allowed!
present search, with: entity
@@ -94,7 +94,7 @@ module API
use :pagination
end
get ':id/(-/)search' do
- verify_search_scope!
+ verify_search_scope!(resource: user_group)
check_users_search_allowed!
present search(group_id: user_group.id), with: entity
diff --git a/qa/qa/flow/login.rb b/qa/qa/flow/login.rb
index 30137571dbd..5505fabd4ae 100644
--- a/qa/qa/flow/login.rb
+++ b/qa/qa/flow/login.rb
@@ -12,12 +12,6 @@ module QA
yield
- # Workaround for a bug preventing sign out from secondary nodes
- # See https://gitlab.com/gitlab-org/gitlab/issues/198289
- if address == :geo_secondary
- Runtime::Browser.visit(:geo_primary, Page::Dashboard::Projects)
- end
-
Page::Main::Menu.perform(&:sign_out)
end
diff --git a/qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb b/qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb
index 70b571a316a..7c9db5ee496 100644
--- a/qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb
+++ b/qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
module QA
- context 'Create', quarantine: 'https://gitlab.com/gitlab-org/gitlab/issues/196034' do
+ context 'Create' do
describe 'Web IDE file templates' do
include Runtime::Fixtures
diff --git a/spec/controllers/projects/artifacts_controller_spec.rb b/spec/controllers/projects/artifacts_controller_spec.rb
index 126bb1c9822..7aaaa363faa 100644
--- a/spec/controllers/projects/artifacts_controller_spec.rb
+++ b/spec/controllers/projects/artifacts_controller_spec.rb
@@ -156,7 +156,7 @@ describe Projects::ArtifactsController do
it 'returns 404' do
download_artifact(file_type: file_type)
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -236,7 +236,7 @@ describe Projects::ArtifactsController do
it 'renders the file view' do
get :file, params: { namespace_id: project.namespace, project_id: project, job_id: job, path: 'ci_artifacts.txt' }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -302,7 +302,7 @@ describe Projects::ArtifactsController do
it 'renders the file view' do
get :file, params: { namespace_id: private_project.namespace, project_id: private_project, job_id: job, path: 'ci_artifacts.txt' }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
end
@@ -317,7 +317,7 @@ describe Projects::ArtifactsController do
it 'serves the file using workhorse' do
subject
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(send_data).to start_with('artifacts-entry:')
expect(params.keys).to eq(%w(Archive Entry))
diff --git a/spec/controllers/projects/autocomplete_sources_controller_spec.rb b/spec/controllers/projects/autocomplete_sources_controller_spec.rb
index fc8fe1ac4f6..d35192b2ccb 100644
--- a/spec/controllers/projects/autocomplete_sources_controller_spec.rb
+++ b/spec/controllers/projects/autocomplete_sources_controller_spec.rb
@@ -65,7 +65,7 @@ describe Projects::AutocompleteSourcesController do
get :milestones, format: :json, params: { namespace_id: group.path, project_id: project.path }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
diff --git a/spec/controllers/projects/avatars_controller_spec.rb b/spec/controllers/projects/avatars_controller_spec.rb
index d463619ad0b..1d844c847d6 100644
--- a/spec/controllers/projects/avatars_controller_spec.rb
+++ b/spec/controllers/projects/avatars_controller_spec.rb
@@ -16,7 +16,7 @@ describe Projects::AvatarsController do
it 'shows 404' do
subject
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -31,7 +31,7 @@ describe Projects::AvatarsController do
it 'sends the avatar' do
subject
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.header['Content-Disposition']).to eq('inline')
expect(response.header[Gitlab::Workhorse::SEND_DATA_HEADER]).to start_with('git-blob:')
expect(response.header[Gitlab::Workhorse::DETECT_HEADER]).to eq "true"
diff --git a/spec/controllers/projects/blob_controller_spec.rb b/spec/controllers/projects/blob_controller_spec.rb
index aa1dcdd9f1d..225538dcc45 100644
--- a/spec/controllers/projects/blob_controller_spec.rb
+++ b/spec/controllers/projects/blob_controller_spec.rb
@@ -232,7 +232,7 @@ describe Projects::BlobController do
end
it 'redirects to blob show' do
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -246,7 +246,7 @@ describe Projects::BlobController do
end
it 'redirects to blob show' do
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
end
diff --git a/spec/controllers/projects/boards_controller_spec.rb b/spec/controllers/projects/boards_controller_spec.rb
index 543479d8dd5..ebfdb997974 100644
--- a/spec/controllers/projects/boards_controller_spec.rb
+++ b/spec/controllers/projects/boards_controller_spec.rb
@@ -39,7 +39,7 @@ describe Projects::BoardsController do
it 'returns a not found 404 response' do
list_boards
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(response.content_type).to eq 'text/html'
end
end
@@ -82,7 +82,7 @@ describe Projects::BoardsController do
it 'returns a not found 404 response' do
list_boards format: :json
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(response.content_type).to eq 'application/json'
end
end
@@ -94,7 +94,7 @@ describe Projects::BoardsController do
it 'returns a not found 404 response' do
list_boards
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -137,7 +137,7 @@ describe Projects::BoardsController do
it 'returns a not found 404 response' do
read_board board: board
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(response.content_type).to eq 'text/html'
end
end
@@ -174,7 +174,7 @@ describe Projects::BoardsController do
it 'returns a not found 404 response' do
read_board board: board, format: :json
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(response.content_type).to eq 'application/json'
end
end
@@ -186,7 +186,7 @@ describe Projects::BoardsController do
read_board board: another_board
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
diff --git a/spec/controllers/projects/branches_controller_spec.rb b/spec/controllers/projects/branches_controller_spec.rb
index 5b59534cb49..85d3044993e 100644
--- a/spec/controllers/projects/branches_controller_spec.rb
+++ b/spec/controllers/projects/branches_controller_spec.rb
@@ -217,7 +217,7 @@ describe Projects::BranchesController do
}
expect(response.location).to include(project_new_blob_path(project, branch))
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -238,7 +238,7 @@ describe Projects::BranchesController do
}
expect(response.location).to include(project_new_blob_path(project, branch))
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -289,7 +289,7 @@ describe Projects::BranchesController do
it 'returns a successful 200 response' do
create_branch name: 'my-branch', ref: 'master'
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
it 'returns the created branch' do
@@ -303,7 +303,7 @@ describe Projects::BranchesController do
it 'returns an unprocessable entity 422 response' do
create_branch name: "<script>alert('merge');</script>", ref: "<script>alert('ref');</script>"
- expect(response).to have_gitlab_http_status(422)
+ expect(response).to have_gitlab_http_status(:unprocessable_entity)
end
end
@@ -335,7 +335,7 @@ describe Projects::BranchesController do
project_id: project
}
- expect(response).to have_gitlab_http_status(303)
+ expect(response).to have_gitlab_http_status(:see_other)
end
end
@@ -361,28 +361,28 @@ describe Projects::BranchesController do
context "valid branch name, valid source" do
let(:branch) { "feature" }
- it { expect(response).to have_gitlab_http_status(200) }
+ it { expect(response).to have_gitlab_http_status(:ok) }
it { expect(response.body).to be_blank }
end
context "valid branch name with unencoded slashes" do
let(:branch) { "improve/awesome" }
- it { expect(response).to have_gitlab_http_status(200) }
+ it { expect(response).to have_gitlab_http_status(:ok) }
it { expect(response.body).to be_blank }
end
context "valid branch name with encoded slashes" do
let(:branch) { "improve%2Fawesome" }
- it { expect(response).to have_gitlab_http_status(200) }
+ it { expect(response).to have_gitlab_http_status(:ok) }
it { expect(response.body).to be_blank }
end
context "invalid branch name, valid ref" do
let(:branch) { "no-branch" }
- it { expect(response).to have_gitlab_http_status(404) }
+ it { expect(response).to have_gitlab_http_status(:not_found) }
it { expect(response.body).to be_blank }
end
end
@@ -398,7 +398,7 @@ describe Projects::BranchesController do
expect(json_response).to eql("message" => 'Branch was deleted')
end
- it { expect(response).to have_gitlab_http_status(200) }
+ it { expect(response).to have_gitlab_http_status(:ok) }
end
context 'valid branch name with unencoded slashes' do
@@ -408,7 +408,7 @@ describe Projects::BranchesController do
expect(json_response).to eql('message' => 'Branch was deleted')
end
- it { expect(response).to have_gitlab_http_status(200) }
+ it { expect(response).to have_gitlab_http_status(:ok) }
end
context "valid branch name with encoded slashes" do
@@ -418,7 +418,7 @@ describe Projects::BranchesController do
expect(json_response).to eql('message' => 'Branch was deleted')
end
- it { expect(response).to have_gitlab_http_status(200) }
+ it { expect(response).to have_gitlab_http_status(:ok) }
end
context 'invalid branch name, valid ref' do
@@ -428,7 +428,7 @@ describe Projects::BranchesController do
expect(json_response).to eql('message' => 'No such branch')
end
- it { expect(response).to have_gitlab_http_status(404) }
+ it { expect(response).to have_gitlab_http_status(:not_found) }
end
end
@@ -478,7 +478,7 @@ describe Projects::BranchesController do
it 'responds with status 404' do
destroy_all_merged
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -519,7 +519,7 @@ describe Projects::BranchesController do
state: 'all'
}
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -537,7 +537,7 @@ describe Projects::BranchesController do
state: 'all'
}
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -594,7 +594,7 @@ describe Projects::BranchesController do
names: %w[fix add-pdf-file branch-merged]
}
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(json_response).to eq(
"fix" => { "behind" => 29, "ahead" => 2 },
"branch-merged" => { "behind" => 1, "ahead" => 0 },
@@ -612,7 +612,7 @@ describe Projects::BranchesController do
project_id: project
}
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(json_response.count).to be > 1
end
@@ -629,7 +629,7 @@ describe Projects::BranchesController do
project_id: project
}
- expect(response).to have_gitlab_http_status(422)
+ expect(response).to have_gitlab_http_status(:unprocessable_entity)
expect(json_response['error']).to eq("Specify at least one and at most #{Kaminari.config.default_per_page} branch names")
end
@@ -642,7 +642,7 @@ describe Projects::BranchesController do
names: %w[fix add-pdf-file branch-merged]
}
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(json_response.count).to be > 1
end
end
diff --git a/spec/controllers/projects/clusters_controller_spec.rb b/spec/controllers/projects/clusters_controller_spec.rb
index 642932e2935..c6345a2153c 100644
--- a/spec/controllers/projects/clusters_controller_spec.rb
+++ b/spec/controllers/projects/clusters_controller_spec.rb
@@ -648,7 +648,7 @@ describe Projects::ClustersController do
go(format: :json)
cluster.reload
- expect(response).to have_http_status(:no_content)
+ expect(response).to have_gitlab_http_status(:no_content)
expect(cluster.enabled).to be_falsey
expect(cluster.name).to eq('my-new-cluster-name')
expect(cluster).not_to be_managed
@@ -671,7 +671,7 @@ describe Projects::ClustersController do
it "rejects changes" do
go(format: :json)
- expect(response).to have_http_status(:bad_request)
+ expect(response).to have_gitlab_http_status(:bad_request)
end
end
end
diff --git a/spec/controllers/projects/commit_controller_spec.rb b/spec/controllers/projects/commit_controller_spec.rb
index 95112cfeabe..c8ddd181d10 100644
--- a/spec/controllers/projects/commit_controller_spec.rb
+++ b/spec/controllers/projects/commit_controller_spec.rb
@@ -179,7 +179,7 @@ describe Projects::CommitController do
})
expect(response).not_to be_successful
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -236,7 +236,7 @@ describe Projects::CommitController do
})
expect(response).not_to be_successful
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -322,7 +322,7 @@ describe Projects::CommitController do
end
it 'returns a 404' do
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -334,7 +334,7 @@ describe Projects::CommitController do
end
it 'returns a 404' do
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -345,7 +345,7 @@ describe Projects::CommitController do
end
it 'returns a 404' do
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -393,7 +393,7 @@ describe Projects::CommitController do
end
it 'returns a 404' do
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
diff --git a/spec/controllers/projects/compare_controller_spec.rb b/spec/controllers/projects/compare_controller_spec.rb
index 9afc46c4be9..bd50811726a 100644
--- a/spec/controllers/projects/compare_controller_spec.rb
+++ b/spec/controllers/projects/compare_controller_spec.rb
@@ -108,7 +108,7 @@ describe Projects::CompareController do
show_request
expect(flash[:alert]).to eq('Invalid branch name')
- expect(response).to have_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -120,7 +120,7 @@ describe Projects::CompareController do
show_request
expect(flash[:alert]).to eq('Invalid branch name')
- expect(response).to have_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
end
@@ -164,7 +164,7 @@ describe Projects::CompareController do
end
it 'returns a 404' do
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -176,7 +176,7 @@ describe Projects::CompareController do
end
it 'returns a 404' do
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -187,7 +187,7 @@ describe Projects::CompareController do
end
it 'returns a 404' do
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -197,7 +197,7 @@ describe Projects::CompareController do
end
it 'returns a 404' do
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -301,7 +301,7 @@ describe Projects::CompareController do
it 'returns only the commit with a signature' do
signatures_request
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
signatures = json_response['signatures']
expect(signatures.size).to eq(1)
@@ -318,7 +318,7 @@ describe Projects::CompareController do
it 'returns a 404' do
signatures_request
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -330,7 +330,7 @@ describe Projects::CompareController do
it 'returns no signatures' do
signatures_request
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(json_response['signatures']).to be_empty
end
end
@@ -342,7 +342,7 @@ describe Projects::CompareController do
it 'returns no signatures' do
signatures_request
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(json_response['signatures']).to be_empty
end
end
diff --git a/spec/controllers/projects/deploy_keys_controller_spec.rb b/spec/controllers/projects/deploy_keys_controller_spec.rb
index 2c7c99eabf6..25e3e8e37a9 100644
--- a/spec/controllers/projects/deploy_keys_controller_spec.rb
+++ b/spec/controllers/projects/deploy_keys_controller_spec.rb
@@ -122,7 +122,7 @@ describe Projects::DeployKeysController do
put :enable, params: { id: deploy_key.id, namespace_id: project.namespace, project_id: project }
end.not_to change { DeployKeysProject.count }
- expect(response).to have_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(response).to redirect_to(new_user_session_path)
end
end
@@ -137,7 +137,7 @@ describe Projects::DeployKeysController do
put :enable, params: { id: deploy_key.id, namespace_id: project.namespace, project_id: project }
end.not_to change { DeployKeysProject.count }
- expect(response).to have_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -152,14 +152,14 @@ describe Projects::DeployKeysController do
end.to change { DeployKeysProject.count }.by(1)
expect(DeployKeysProject.where(project_id: project.id, deploy_key_id: deploy_key.id).count).to eq(1)
- expect(response).to have_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(response).to redirect_to(namespace_project_settings_repository_path(anchor: 'js-deploy-keys-settings'))
end
it 'returns 404' do
put :enable, params: { id: 0, namespace_id: project.namespace, project_id: project }
- expect(response).to have_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -174,7 +174,7 @@ describe Projects::DeployKeysController do
end.to change { DeployKeysProject.count }.by(1)
expect(DeployKeysProject.where(project_id: project.id, deploy_key_id: deploy_key.id).count).to eq(1)
- expect(response).to have_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(response).to redirect_to(namespace_project_settings_repository_path(anchor: 'js-deploy-keys-settings'))
end
end
@@ -192,7 +192,7 @@ describe Projects::DeployKeysController do
it 'redirects to login' do
put :disable, params: { id: deploy_key.id, namespace_id: project.namespace, project_id: project }
- expect(response).to have_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(response).to redirect_to(new_user_session_path)
expect(DeployKey.find(deploy_key.id)).to eq(deploy_key)
end
@@ -206,7 +206,7 @@ describe Projects::DeployKeysController do
it 'returns 404' do
put :disable, params: { id: deploy_key.id, namespace_id: project.namespace, project_id: project }
- expect(response).to have_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(DeployKey.find(deploy_key.id)).to eq(deploy_key)
end
end
@@ -215,7 +215,7 @@ describe Projects::DeployKeysController do
it 'returns 302' do
put :disable, params: { id: deploy_key.id, namespace_id: project.namespace, project_id: project }
- expect(response).to have_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(response).to redirect_to(namespace_project_settings_repository_path(anchor: 'js-deploy-keys-settings'))
expect { DeployKey.find(deploy_key.id) }.to raise_error(ActiveRecord::RecordNotFound)
@@ -224,7 +224,7 @@ describe Projects::DeployKeysController do
it 'returns 404' do
put :disable, params: { id: 0, namespace_id: project.namespace, project_id: project }
- expect(response).to have_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -238,7 +238,7 @@ describe Projects::DeployKeysController do
put :disable, params: { id: deploy_key.id, namespace_id: project.namespace, project_id: project }
end.to change { DeployKey.count }.by(-1)
- expect(response).to have_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(response).to redirect_to(namespace_project_settings_repository_path(anchor: 'js-deploy-keys-settings'))
expect { DeployKey.find(deploy_key.id) }.to raise_error(ActiveRecord::RecordNotFound)
diff --git a/spec/controllers/projects/deployments_controller_spec.rb b/spec/controllers/projects/deployments_controller_spec.rb
index b360319c6b1..bf80346c63a 100644
--- a/spec/controllers/projects/deployments_controller_spec.rb
+++ b/spec/controllers/projects/deployments_controller_spec.rb
@@ -61,7 +61,7 @@ describe Projects::DeploymentsController do
it 'returns a empty response 204 resposne' do
get :metrics, params: deployment_params(id: deployment.to_param)
- expect(response).to have_gitlab_http_status(204)
+ expect(response).to have_gitlab_http_status(:no_content)
expect(response.body).to eq('')
end
end
@@ -100,7 +100,7 @@ describe Projects::DeploymentsController do
get :metrics, params: deployment_params(id: failed_deployment.to_param)
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -129,7 +129,7 @@ describe Projects::DeploymentsController do
it 'returns a empty response 204 response' do
get :additional_metrics, params: deployment_params(id: deployment.to_param, format: :json)
- expect(response).to have_gitlab_http_status(204)
+ expect(response).to have_gitlab_http_status(:no_content)
expect(response.body).to eq('')
end
end
diff --git a/spec/controllers/projects/discussions_controller_spec.rb b/spec/controllers/projects/discussions_controller_spec.rb
index d59f76c1b32..b2e4a3b7b0d 100644
--- a/spec/controllers/projects/discussions_controller_spec.rb
+++ b/spec/controllers/projects/discussions_controller_spec.rb
@@ -27,7 +27,7 @@ describe Projects::DiscussionsController do
it 'returns 404' do
get :show, params: request_params, session: { format: :json }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -39,7 +39,7 @@ describe Projects::DiscussionsController do
it 'returns status 200' do
get :show, params: request_params, session: { format: :json }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
it 'returns status 404 if MR does not exists' do
@@ -47,7 +47,7 @@ describe Projects::DiscussionsController do
get :show, params: request_params, session: { format: :json }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -60,7 +60,7 @@ describe Projects::DiscussionsController do
it 'returns status 200' do
get :show, params: request_params, session: { format: :json }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
end
@@ -74,7 +74,7 @@ describe Projects::DiscussionsController do
it "returns status 404" do
post :resolve, params: request_params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -91,7 +91,7 @@ describe Projects::DiscussionsController do
it "returns status 404" do
post :resolve, params: request_params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -120,7 +120,7 @@ describe Projects::DiscussionsController do
it "returns status 200" do
post :resolve, params: request_params
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
it "renders discussion with serializer" do
@@ -157,7 +157,7 @@ describe Projects::DiscussionsController do
it "returns status 404" do
delete :unresolve, params: request_params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -174,7 +174,7 @@ describe Projects::DiscussionsController do
it "returns status 404" do
delete :unresolve, params: request_params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -188,7 +188,7 @@ describe Projects::DiscussionsController do
it "returns status 200" do
delete :unresolve, params: request_params
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
context "when vue_mr_discussions cookie is present" do
diff --git a/spec/controllers/projects/environments_controller_spec.rb b/spec/controllers/projects/environments_controller_spec.rb
index e7ce2cb0c2e..7f0f8e36564 100644
--- a/spec/controllers/projects/environments_controller_spec.rb
+++ b/spec/controllers/projects/environments_controller_spec.rb
@@ -179,7 +179,7 @@ describe Projects::EnvironmentsController do
params[:id] = 12345
get :show, params: params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -197,7 +197,7 @@ describe Projects::EnvironmentsController do
patch_params = environment_params.merge(environment: { external_url: 'https://git.gitlab.com' })
patch :update, params: patch_params
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -208,7 +208,7 @@ describe Projects::EnvironmentsController do
patch :stop, params: environment_params(format: :json)
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -221,7 +221,7 @@ describe Projects::EnvironmentsController do
patch :stop, params: environment_params(format: :json)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(json_response).to eq(
{ 'redirect_url' =>
project_job_url(project, action) })
@@ -235,7 +235,7 @@ describe Projects::EnvironmentsController do
patch :stop, params: environment_params(format: :json)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(json_response).to eq(
{ 'redirect_url' =>
project_environment_url(project, environment) })
@@ -278,7 +278,7 @@ describe Projects::EnvironmentsController do
it 'responds with a status code 200' do
get :terminal, params: environment_params
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
it 'loads the terminals for the environment' do
@@ -295,7 +295,7 @@ describe Projects::EnvironmentsController do
it 'responds with a status code 404' do
get :terminal, params: environment_params(id: 666)
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -321,7 +321,7 @@ describe Projects::EnvironmentsController do
get :terminal_websocket_authorize, params: environment_params
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.headers["Content-Type"]).to eq(Gitlab::Workhorse::INTERNAL_API_CONTENT_TYPE)
expect(response.body).to eq('{"workhorse":"response"}')
end
@@ -331,7 +331,7 @@ describe Projects::EnvironmentsController do
it 'returns 404' do
get :terminal_websocket_authorize, params: environment_params(id: 666)
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -386,7 +386,7 @@ describe Projects::EnvironmentsController do
get :metrics, params: environment_params(format: :json)
- expect(response).to have_gitlab_http_status(204)
+ expect(response).to have_gitlab_http_status(:no_content)
expect(json_response).to eq({})
end
end
@@ -428,7 +428,7 @@ describe Projects::EnvironmentsController do
it 'returns a metrics JSON document' do
additional_metrics(window_params)
- expect(response).to have_gitlab_http_status(204)
+ expect(response).to have_gitlab_http_status(:no_content)
expect(json_response).to eq({})
end
end
diff --git a/spec/controllers/projects/forks_controller_spec.rb b/spec/controllers/projects/forks_controller_spec.rb
index e351fb2b1f6..e6a68459a84 100644
--- a/spec/controllers/projects/forks_controller_spec.rb
+++ b/spec/controllers/projects/forks_controller_spec.rb
@@ -23,7 +23,7 @@ describe Projects::ForksController do
it 'returns with 404' do
subject
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -167,7 +167,7 @@ describe Projects::ForksController do
subject
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -205,7 +205,7 @@ describe Projects::ForksController do
it 'responds with status 302' do
subject
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(response).to redirect_to(namespace_project_import_path(user.namespace, project))
end
@@ -228,7 +228,7 @@ describe Projects::ForksController do
it 'passes continue params to the redirect' do
subject
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(response).to redirect_to(namespace_project_import_path(user.namespace, project, continue: continue_params))
end
end
diff --git a/spec/controllers/projects/group_links_controller_spec.rb b/spec/controllers/projects/group_links_controller_spec.rb
index d0cb3a74b78..c775b77ce1c 100644
--- a/spec/controllers/projects/group_links_controller_spec.rb
+++ b/spec/controllers/projects/group_links_controller_spec.rb
@@ -33,7 +33,7 @@ describe Projects::GroupLinksController do
include_context 'link project to group'
it 'responds with status 404' do
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
diff --git a/spec/controllers/projects/hooks_controller_spec.rb b/spec/controllers/projects/hooks_controller_spec.rb
index 137296b4f19..f50ef2d804c 100644
--- a/spec/controllers/projects/hooks_controller_spec.rb
+++ b/spec/controllers/projects/hooks_controller_spec.rb
@@ -42,7 +42,7 @@ describe Projects::HooksController do
post :create, params: { namespace_id: project.namespace, project_id: project, hook: hook_params }
- expect(response).to have_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(ProjectHook.all.size).to eq(1)
expect(ProjectHook.first).to have_attributes(hook_params)
end
diff --git a/spec/controllers/projects/issues_controller_spec.rb b/spec/controllers/projects/issues_controller_spec.rb
index 945a56365c8..7cdb8989692 100644
--- a/spec/controllers/projects/issues_controller_spec.rb
+++ b/spec/controllers/projects/issues_controller_spec.rb
@@ -24,7 +24,7 @@ describe Projects::IssuesController do
get :index, params: { namespace_id: project.namespace, project_id: project }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -32,7 +32,7 @@ describe Projects::IssuesController do
it 'renders the "index" template' do
get :index, params: { namespace_id: project.namespace, project_id: project }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response).to render_template(:index)
end
end
@@ -51,14 +51,14 @@ describe Projects::IssuesController do
get :index, params: { namespace_id: project.namespace, project_id: project }
expect(response).to redirect_to(project_issues_path(new_project))
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
it 'redirects from an old issue correctly' do
get :show, params: { namespace_id: project.namespace, project_id: project, id: issue }
expect(response).to redirect_to(project_issue_path(new_project, issue))
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
end
@@ -78,7 +78,7 @@ describe Projects::IssuesController do
it "returns index" do
get :index, params: { namespace_id: project.namespace, project_id: project }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
it "returns 301 if request path doesn't match project path" do
@@ -92,7 +92,7 @@ describe Projects::IssuesController do
project.save!
get :index, params: { namespace_id: project.namespace, project_id: project }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -118,7 +118,7 @@ describe Projects::IssuesController do
get :index, params: params.merge(page: last_page + 1)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(assigns(:issues).size).to eq(2)
end
end
@@ -227,7 +227,7 @@ describe Projects::IssuesController do
get :new, params: { namespace_id: project.namespace, project_id: project }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -235,7 +235,7 @@ describe Projects::IssuesController do
it 'renders the "new" template' do
get :new, params: { namespace_id: project.namespace, project_id: project }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response).to render_template(:new)
end
end
@@ -330,7 +330,7 @@ describe Projects::IssuesController do
[issue1, issue2, issue3].map(&:reload)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(issue1.relative_position)
.to be_between(issue2.relative_position, issue3.relative_position)
end
@@ -340,7 +340,7 @@ describe Projects::IssuesController do
it 'returns a unprocessable entity 422 response for invalid move ids' do
reorder_issue(issue1, move_after_id: 99, move_before_id: 999)
- expect(response).to have_gitlab_http_status(422)
+ expect(response).to have_gitlab_http_status(:unprocessable_entity)
end
it 'returns a not found 404 response for invalid issue id' do
@@ -348,7 +348,7 @@ describe Projects::IssuesController do
move_after_id: issue2.id,
move_before_id: issue3.id)
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
it 'returns a unprocessable entity 422 response for issues not in group' do
@@ -359,7 +359,7 @@ describe Projects::IssuesController do
move_before_id: issue3.id,
group_full_path: another_group.full_path)
- expect(response).to have_gitlab_http_status(422)
+ expect(response).to have_gitlab_http_status(:unprocessable_entity)
end
end
end
@@ -415,7 +415,7 @@ describe Projects::IssuesController do
it 'updates the issue' do
subject
- expect(response).to have_http_status(:ok)
+ expect(response).to have_gitlab_http_status(:ok)
expect(issue.reload.title).to eq('New title')
end
@@ -443,7 +443,7 @@ describe Projects::IssuesController do
it 'updates the issue' do
subject
- expect(response).to have_http_status(:ok)
+ expect(response).to have_gitlab_http_status(:ok)
expect(issue.reload.title).to eq('New title')
end
end
@@ -458,7 +458,7 @@ describe Projects::IssuesController do
it 'responds with 404' do
subject
- expect(response).to have_http_status(:not_found)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -505,7 +505,7 @@ describe Projects::IssuesController do
it 'returns 200' do
go(id: issue.iid)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -749,7 +749,7 @@ describe Projects::IssuesController do
it 'returns 200 status' do
update_issue
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -769,7 +769,7 @@ describe Projects::IssuesController do
it 'returns 200 status' do
update_issue
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
end
@@ -785,7 +785,7 @@ describe Projects::IssuesController do
end
it 'returns 200 status' do
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
it 'accepts an issue after recaptcha is verified' do
@@ -1131,7 +1131,7 @@ describe Projects::IssuesController do
it "rejects a developer to destroy an issue" do
delete :destroy, params: { namespace_id: project.namespace, project_id: project, id: issue.iid }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -1147,14 +1147,14 @@ describe Projects::IssuesController do
it "deletes the issue" do
delete :destroy, params: { namespace_id: project.namespace, project_id: project, id: issue.iid, destroy_confirm: true }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(controller).to set_flash[:notice].to(/The issue was successfully deleted\./)
end
it "deletes the issue" do
delete :destroy, params: { namespace_id: project.namespace, project_id: project, id: issue.iid, destroy_confirm: true }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(controller).to set_flash[:notice].to(/The issue was successfully deleted\./)
end
@@ -1163,7 +1163,7 @@ describe Projects::IssuesController do
delete :destroy, params: { namespace_id: project.namespace, project_id: project, id: issue.iid }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(controller).to set_flash[:notice].to('Destroy confirmation not provided for issue')
end
@@ -1172,7 +1172,7 @@ describe Projects::IssuesController do
delete :destroy, params: { namespace_id: project.namespace, project_id: project, id: issue.iid, format: 'json' }
- expect(response).to have_gitlab_http_status(422)
+ expect(response).to have_gitlab_http_status(:unprocessable_entity)
expect(json_response).to eq({ 'errors' => 'Destroy confirmation not provided for issue' })
end
@@ -1206,7 +1206,7 @@ describe Projects::IssuesController do
subject
end.to change { issue.award_emoji.count }.by(1)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
it "removes the already awarded emoji" do
@@ -1214,7 +1214,7 @@ describe Projects::IssuesController do
expect { subject }.to change { AwardEmoji.count }.by(-1)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
it 'marks Todos on the Issue as done' do
@@ -1250,7 +1250,7 @@ describe Projects::IssuesController do
create_merge_request
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
it 'is not available for users who cannot create merge requests' do
@@ -1258,7 +1258,7 @@ describe Projects::IssuesController do
create_merge_request
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
context 'target_project_id is set' do
diff --git a/spec/controllers/projects/jobs_controller_spec.rb b/spec/controllers/projects/jobs_controller_spec.rb
index 53c40683a5b..65f57deff1b 100644
--- a/spec/controllers/projects/jobs_controller_spec.rb
+++ b/spec/controllers/projects/jobs_controller_spec.rb
@@ -1183,7 +1183,7 @@ describe Projects::JobsController, :clean_gitlab_redis_shared_state do
get_terminal_websocket(id: job.id)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.headers["Content-Type"]).to eq(Gitlab::Workhorse::INTERNAL_API_CONTENT_TYPE)
expect(response.body).to eq('{"workhorse":"response"}')
end
@@ -1193,7 +1193,7 @@ describe Projects::JobsController, :clean_gitlab_redis_shared_state do
it 'returns 404' do
get_terminal_websocket(id: 1234)
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
diff --git a/spec/controllers/projects/labels_controller_spec.rb b/spec/controllers/projects/labels_controller_spec.rb
index aee017b211a..c6098f5934d 100644
--- a/spec/controllers/projects/labels_controller_spec.rb
+++ b/spec/controllers/projects/labels_controller_spec.rb
@@ -80,7 +80,7 @@ describe Projects::LabelsController do
it 'creates labels' do
post :generate, params: { namespace_id: personal_project.namespace.to_param, project_id: personal_project }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -88,7 +88,7 @@ describe Projects::LabelsController do
it 'creates labels' do
post :generate, params: { namespace_id: project.namespace.to_param, project_id: project }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
end
@@ -99,7 +99,7 @@ describe Projects::LabelsController do
toggle_subscription(label)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
it 'allows user to toggle subscription on group labels' do
@@ -107,7 +107,7 @@ describe Projects::LabelsController do
toggle_subscription(group_label)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
def toggle_subscription(label)
@@ -123,7 +123,7 @@ describe Projects::LabelsController do
it 'denies access' do
post :promote, params: { namespace_id: project.namespace.to_param, project_id: project, id: label_1.to_param }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -180,7 +180,7 @@ describe Projects::LabelsController do
it 'does not redirect' do
get :index, params: { namespace_id: project.namespace, project_id: project.to_param }
- expect(response).not_to have_gitlab_http_status(301)
+ expect(response).not_to have_gitlab_http_status(:moved_permanently)
end
end
@@ -231,13 +231,13 @@ describe Projects::LabelsController do
it 'does not 404' do
post :generate, params: { namespace_id: project.namespace, project_id: project }
- expect(response).not_to have_gitlab_http_status(404)
+ expect(response).not_to have_gitlab_http_status(:not_found)
end
it 'does not redirect to the correct casing' do
post :generate, params: { namespace_id: project.namespace, project_id: project }
- expect(response).not_to have_gitlab_http_status(301)
+ expect(response).not_to have_gitlab_http_status(:moved_permanently)
end
end
@@ -247,7 +247,7 @@ describe Projects::LabelsController do
it 'returns not found' do
post :generate, params: { namespace_id: project.namespace, project_id: project.to_param + 'old' }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
diff --git a/spec/controllers/projects/mattermosts_controller_spec.rb b/spec/controllers/projects/mattermosts_controller_spec.rb
index 64440ed585d..693176d0cfc 100644
--- a/spec/controllers/projects/mattermosts_controller_spec.rb
+++ b/spec/controllers/projects/mattermosts_controller_spec.rb
@@ -25,7 +25,7 @@ describe Projects::MattermostsController do
project_id: project
})
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb
index df2727d13cf..826c69ee5f0 100644
--- a/spec/controllers/projects/merge_requests_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests_controller_spec.rb
@@ -113,7 +113,7 @@ describe Projects::MergeRequestsController do
}
expect(response).to redirect_to(project_merge_request_path(new_project, merge_request))
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
it 'redirects from an old merge request commits correctly' do
@@ -125,7 +125,7 @@ describe Projects::MergeRequestsController do
}
expect(response).to redirect_to(commits_project_merge_request_path(new_project, merge_request))
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
end
@@ -229,7 +229,7 @@ describe Projects::MergeRequestsController do
get_merge_requests(last_page)
expect(assigns(:merge_requests).current_page).to eq(last_page)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
it 'does not redirect to external sites when provided a host field' do
@@ -306,7 +306,7 @@ describe Projects::MergeRequestsController do
it 'responds with 404' do
update_merge_request(title: 'New title')
- expect(response).to have_http_status(:not_found)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -381,7 +381,7 @@ describe Projects::MergeRequestsController do
end
it 'returns 404' do
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -615,7 +615,7 @@ describe Projects::MergeRequestsController do
it "denies access to users unless they're admin or project owner" do
delete :destroy, params: { namespace_id: project.namespace, project_id: project, id: merge_request.iid }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
context "when the user is owner" do
@@ -630,7 +630,7 @@ describe Projects::MergeRequestsController do
it "deletes the merge request" do
delete :destroy, params: { namespace_id: project.namespace, project_id: project, id: merge_request.iid, destroy_confirm: true }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(controller).to set_flash[:notice].to(/The merge request was successfully deleted\./)
end
@@ -639,7 +639,7 @@ describe Projects::MergeRequestsController do
delete :destroy, params: { namespace_id: project.namespace, project_id: project, id: merge_request.iid }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(controller).to set_flash[:notice].to('Destroy confirmation not provided for merge request')
end
@@ -648,7 +648,7 @@ describe Projects::MergeRequestsController do
delete :destroy, params: { namespace_id: project.namespace, project_id: project, id: merge_request.iid, format: 'json' }
- expect(response).to have_gitlab_http_status(422)
+ expect(response).to have_gitlab_http_status(:unprocessable_entity)
expect(json_response).to eq({ 'errors' => 'Destroy confirmation not provided for merge request' })
end
@@ -842,7 +842,7 @@ describe Projects::MergeRequestsController do
it 'responds with a 404' do
subject
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(response.body).to be_blank
end
end
@@ -855,7 +855,7 @@ describe Projects::MergeRequestsController do
it 'responds with a 404' do
subject
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(response.body).to be_blank
end
end
@@ -898,7 +898,7 @@ describe Projects::MergeRequestsController do
it 'returns exposed artifacts' do
subject
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(json_response['status']).to eq('parsed')
expect(json_response['data']).to eq([{
'job_name' => 'test',
@@ -951,7 +951,7 @@ describe Projects::MergeRequestsController do
it 'returns no content' do
subject
- expect(response).to have_gitlab_http_status(204)
+ expect(response).to have_gitlab_http_status(:no_content)
expect(response.body).to be_empty
end
end
@@ -998,7 +998,7 @@ describe Projects::MergeRequestsController do
it 'responds with a 404' do
subject
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(response.body).to be_blank
end
end
@@ -1011,7 +1011,7 @@ describe Projects::MergeRequestsController do
it 'responds with a 404' do
subject
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(response.body).to be_blank
end
end
diff --git a/spec/controllers/projects/milestones_controller_spec.rb b/spec/controllers/projects/milestones_controller_spec.rb
index a3f55c1eed0..3efdeda6171 100644
--- a/spec/controllers/projects/milestones_controller_spec.rb
+++ b/spec/controllers/projects/milestones_controller_spec.rb
@@ -30,14 +30,14 @@ describe Projects::MilestonesController do
it 'shows milestone page' do
view_milestone
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.content_type).to eq 'text/html'
end
it 'returns milestone json' do
view_milestone format: :json
- expect(response).to have_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(response.content_type).to eq 'application/json'
end
end
@@ -171,7 +171,7 @@ describe Projects::MilestonesController do
it 'renders 404' do
post :promote, params: { namespace_id: project.namespace.id, project_id: project.id, id: milestone.iid }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -190,7 +190,7 @@ describe Projects::MilestonesController do
get :labels, params: { namespace_id: group.id, project_id: project.id, id: milestone.iid }, format: :json
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.content_type).to eq 'application/json'
expect(json_response['html']).not_to include(label.title)
@@ -201,7 +201,7 @@ describe Projects::MilestonesController do
get :labels, params: { namespace_id: group.id, project_id: project.id, id: milestone.iid }, format: :json
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.content_type).to eq 'application/json'
expect(json_response['html']).to include(label.title)
@@ -240,7 +240,7 @@ describe Projects::MilestonesController do
post :promote, params: { namespace_id: project.namespace.id, project_id: project.id, id: milestone.iid }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -263,7 +263,7 @@ describe Projects::MilestonesController do
params = { namespace_id: project.namespace.id, project_id: project.id, id: milestone.iid, format: :json }
get :participants, params: params
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.content_type).to eq 'application/json'
expect(json_response['html']).to include(issue_assignee.name)
end
@@ -278,7 +278,7 @@ describe Projects::MilestonesController do
params = { namespace_id: project.namespace.id, project_id: project.id, id: milestone.iid, format: :json }
get :participants, params: params
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.content_type).to eq 'application/json'
expect(json_response['html']).not_to include(issue_assignee.name)
end
diff --git a/spec/controllers/projects/mirrors_controller_spec.rb b/spec/controllers/projects/mirrors_controller_spec.rb
index e14686970a1..4362febda5c 100644
--- a/spec/controllers/projects/mirrors_controller_spec.rb
+++ b/spec/controllers/projects/mirrors_controller_spec.rb
@@ -103,7 +103,7 @@ describe Projects::MirrorsController do
it "returns an error with a 400 response for URL #{url.inspect}" do
do_get(project, url)
- expect(response).to have_gitlab_http_status(400)
+ expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response).to eq('message' => 'Invalid URL')
end
end
@@ -115,7 +115,7 @@ describe Projects::MirrorsController do
do_get(project)
- expect(response).to have_gitlab_http_status(204)
+ expect(response).to have_gitlab_http_status(:no_content)
end
end
@@ -125,7 +125,7 @@ describe Projects::MirrorsController do
do_get(project)
- expect(response).to have_gitlab_http_status(400)
+ expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response).to eq('message' => 'An error')
end
end
@@ -139,7 +139,7 @@ describe Projects::MirrorsController do
do_get(project)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(json_response).to eq('known_hosts' => ssh_key, 'fingerprints' => [ssh_fp.stringify_keys], 'host_keys_changed' => true)
end
end
diff --git a/spec/controllers/projects/notes_controller_spec.rb b/spec/controllers/projects/notes_controller_spec.rb
index abc9e728cb3..7c00af7b945 100644
--- a/spec/controllers/projects/notes_controller_spec.rb
+++ b/spec/controllers/projects/notes_controller_spec.rb
@@ -152,7 +152,7 @@ describe Projects::NotesController do
it 'renders 404' do
get :index, params: params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -246,7 +246,7 @@ describe Projects::NotesController do
context 'the project is publically available' do
context 'for HTML' do
it "returns status 302" do
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -254,7 +254,7 @@ describe Projects::NotesController do
let(:extra_request_params) { { format: :json } }
it "returns status 200 for json" do
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
end
@@ -265,7 +265,7 @@ describe Projects::NotesController do
let(:extra_request_params) { { format: :json } }
it "returns status 422 for json" do
- expect(response).to have_gitlab_http_status(422)
+ expect(response).to have_gitlab_http_status(:unprocessable_entity)
end
end
end
@@ -278,7 +278,7 @@ describe Projects::NotesController do
let(:extra_request_params) { extra }
it "returns status 404" do
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -296,7 +296,7 @@ describe Projects::NotesController do
it "returns status 302 (redirect)" do
create!
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -306,7 +306,7 @@ describe Projects::NotesController do
it "returns status 200" do
create!
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -316,7 +316,7 @@ describe Projects::NotesController do
it 'returns discussion JSON when the return_discussion param is set' do
create!
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(json_response).to have_key 'discussion'
expect(json_response.dig('discussion', 'notes', 0, 'note')).to eq(request_params[:note][:note])
end
@@ -330,7 +330,7 @@ describe Projects::NotesController do
it 'includes changes in commands_changes ' do
create!
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(json_response['commands_changes']).to include('emoji_award', 'time_estimate', 'spend_time')
expect(json_response['commands_changes']).not_to include('target_project', 'title')
end
@@ -349,7 +349,7 @@ describe Projects::NotesController do
it 'does not include changes in commands_changes' do
create!
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(json_response['commands_changes']).not_to include('target_project', 'title')
end
end
@@ -363,7 +363,7 @@ describe Projects::NotesController do
it "prevents a non-member user from creating a note on one of the project's merge requests" do
create!
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
context 'when the user is a team member' do
@@ -424,7 +424,7 @@ describe Projects::NotesController do
it 'returns an error to the user' do
create!
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -436,7 +436,7 @@ describe Projects::NotesController do
it "prevents a non-member user from creating a note on one of the project's merge requests" do
create!
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
context 'when the user is a team member' do
@@ -467,7 +467,7 @@ describe Projects::NotesController do
it "returns status 302 for html" do
create!
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -531,7 +531,7 @@ describe Projects::NotesController do
it 'returns a 404', :sidekiq_might_not_need_inline do
create!
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -540,7 +540,7 @@ describe Projects::NotesController do
it 'returns a 404', :sidekiq_might_not_need_inline do
create!
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -550,7 +550,7 @@ describe Projects::NotesController do
it 'is successful' do
create!
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
it 'creates the note' do
@@ -574,7 +574,7 @@ describe Projects::NotesController do
expect { post :create, params: request_params }.to change { issue.notes.count }.by(1)
.and change { locked_issue.notes.count }.by(0)
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -588,7 +588,7 @@ describe Projects::NotesController do
request_params[:target_id] = 9999
post :create, params: request_params.merge(format: :json)
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -600,13 +600,13 @@ describe Projects::NotesController do
it 'returns 302 status for html' do
post :create, params: request_params
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
it 'returns 200 status for json' do
post :create, params: request_params.merge(format: :json)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
it 'creates a new note' do
@@ -618,7 +618,7 @@ describe Projects::NotesController do
it 'returns 404 status' do
post :create, params: request_params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
it 'does not create a new note' do
@@ -671,7 +671,7 @@ describe Projects::NotesController do
}
}
expect { put :update, params: request_params }.not_to change { note.reload.note }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -695,7 +695,7 @@ describe Projects::NotesController do
it "returns status 200 for html" do
delete :destroy, params: request_params
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
it "deletes the note" do
@@ -712,7 +712,7 @@ describe Projects::NotesController do
it "returns status 404" do
delete :destroy, params: request_params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -732,7 +732,7 @@ describe Projects::NotesController do
subject
end.to change { note.award_emoji.count }.by(1)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
it "removes the already awarded emoji" do
@@ -740,7 +740,7 @@ describe Projects::NotesController do
expect { subject }.to change { AwardEmoji.count }.by(-1)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
it 'marks Todos on the Noteable as done' do
@@ -766,7 +766,7 @@ describe Projects::NotesController do
it "returns status 404" do
post :resolve, params: request_params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -783,7 +783,7 @@ describe Projects::NotesController do
it "returns status 404" do
post :resolve, params: request_params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -812,7 +812,7 @@ describe Projects::NotesController do
it "returns status 200" do
post :resolve, params: request_params
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
end
@@ -829,7 +829,7 @@ describe Projects::NotesController do
it "returns status 404" do
delete :unresolve, params: request_params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -846,7 +846,7 @@ describe Projects::NotesController do
it "returns status 404" do
delete :unresolve, params: request_params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -860,7 +860,7 @@ describe Projects::NotesController do
it "returns status 200" do
delete :unresolve, params: request_params
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
end
diff --git a/spec/controllers/projects/pages_controller_spec.rb b/spec/controllers/projects/pages_controller_spec.rb
index c07619465bf..102c0b6b048 100644
--- a/spec/controllers/projects/pages_controller_spec.rb
+++ b/spec/controllers/projects/pages_controller_spec.rb
@@ -23,7 +23,7 @@ describe Projects::PagesController do
it 'returns 200 status' do
get :show, params: request_params
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
context 'when the project is in a subgroup' do
@@ -33,7 +33,7 @@ describe Projects::PagesController do
it 'returns a 200 status code' do
get :show, params: request_params
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
end
@@ -42,7 +42,7 @@ describe Projects::PagesController do
it 'returns 302 status' do
delete :destroy, params: request_params
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
context 'when user is developer' do
@@ -53,7 +53,7 @@ describe Projects::PagesController do
it 'returns 404 status' do
delete :destroy, params: request_params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -67,7 +67,7 @@ describe Projects::PagesController do
it 'returns 404 status' do
get :show, params: request_params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -75,7 +75,7 @@ describe Projects::PagesController do
it 'returns 404 status' do
delete :destroy, params: request_params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
diff --git a/spec/controllers/projects/pages_domains_controller_spec.rb b/spec/controllers/projects/pages_domains_controller_spec.rb
index ef6a193e677..ef5e831d26c 100644
--- a/spec/controllers/projects/pages_domains_controller_spec.rb
+++ b/spec/controllers/projects/pages_domains_controller_spec.rb
@@ -35,7 +35,7 @@ describe Projects::PagesDomainsController do
it "displays to the 'show' page" do
make_request
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response).to render_template('show')
end
@@ -47,7 +47,7 @@ describe Projects::PagesDomainsController do
it 'renders 404 page' do
make_request
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -56,7 +56,7 @@ describe Projects::PagesDomainsController do
it "displays the 'new' page" do
get(:new, params: request_params)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response).to render_template('new')
end
end
@@ -78,7 +78,7 @@ describe Projects::PagesDomainsController do
it "displays the 'show' page" do
get(:show, params: request_params.merge(id: pages_domain.domain))
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response).to render_template('show')
end
end
@@ -177,7 +177,7 @@ describe Projects::PagesDomainsController do
it 'returns a 404 response for an unknown domain' do
post :verify, params: request_params.merge(id: 'unknown-domain')
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -250,7 +250,7 @@ describe Projects::PagesDomainsController do
it 'returns 404 status' do
get(:show, params: request_params.merge(id: pages_domain.domain))
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -258,7 +258,7 @@ describe Projects::PagesDomainsController do
it 'returns 404 status' do
get :new, params: request_params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -266,7 +266,7 @@ describe Projects::PagesDomainsController do
it "returns 404 status" do
post(:create, params: request_params.merge(pages_domain: pages_domain_params))
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -274,7 +274,7 @@ describe Projects::PagesDomainsController do
it "deletes the pages domain" do
delete(:destroy, params: request_params.merge(id: pages_domain.domain))
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
diff --git a/spec/controllers/projects/pipeline_schedules_controller_spec.rb b/spec/controllers/projects/pipeline_schedules_controller_spec.rb
index 60b802f1cab..72b282429e9 100644
--- a/spec/controllers/projects/pipeline_schedules_controller_spec.rb
+++ b/spec/controllers/projects/pipeline_schedules_controller_spec.rb
@@ -396,7 +396,7 @@ describe Projects::PipelineSchedulesController do
post :play, params: { namespace_id: project.namespace.to_param, project_id: project, id: pipeline_schedule.id }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -407,7 +407,7 @@ describe Projects::PipelineSchedulesController do
post :play, params: { namespace_id: project.namespace.to_param, project_id: project, id: pipeline_schedule.id }
expect(flash[:notice]).to start_with 'Successfully scheduled a pipeline to run'
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
it 'prevents users from scheduling the same pipeline repeatedly' do
@@ -417,7 +417,7 @@ describe Projects::PipelineSchedulesController do
expect(flash.to_a.size).to eq(2)
expect(flash[:alert]).to eq _('You cannot play this scheduled pipeline at the moment. Please wait a minute.')
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -430,7 +430,7 @@ describe Projects::PipelineSchedulesController do
post :play, params: { namespace_id: project.namespace.to_param, project_id: project, id: protected_schedule.id }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -460,7 +460,7 @@ describe Projects::PipelineSchedulesController do
delete :destroy, params: { namespace_id: project.namespace.to_param, project_id: project, id: pipeline_schedule.id }
end.to change { project.pipeline_schedules.count }.by(-1)
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
end
diff --git a/spec/controllers/projects/pipelines_controller_spec.rb b/spec/controllers/projects/pipelines_controller_spec.rb
index 4cc5b3cba7c..74d7e056737 100644
--- a/spec/controllers/projects/pipelines_controller_spec.rb
+++ b/spec/controllers/projects/pipelines_controller_spec.rb
@@ -703,7 +703,7 @@ describe Projects::PipelinesController do
it 'shows latest pipeline for the default project branch' do
get :show, params: { namespace_id: project.namespace, project_id: project, latest: true, ref: nil }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(assigns(:pipeline)).to have_attributes(id: pipeline_master.id)
end
end
@@ -716,7 +716,7 @@ describe Projects::PipelinesController do
it 'shows the latest pipeline for the provided ref' do
get :show, params: { namespace_id: project.namespace, project_id: project, latest: true, ref: branch_secondary.name }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(assigns(:pipeline)).to have_attributes(id: pipeline_secondary.id)
end
@@ -728,7 +728,7 @@ describe Projects::PipelinesController do
it 'shows the provided ref with the last sha/pipeline combo' do
get :show, params: { namespace_id: project.namespace, project_id: project, latest: true, ref: branch_secondary.name }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(assigns(:pipeline)).to have_attributes(id: pipeline_secondary.id)
end
end
@@ -737,7 +737,7 @@ describe Projects::PipelinesController do
it 'renders a 404 if no pipeline is found for the ref' do
get :show, params: { namespace_id: project.namespace, project_id: project, ref: 'no-branch' }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -754,7 +754,7 @@ describe Projects::PipelinesController do
it 'deletes pipeline and redirects' do
delete_pipeline
- expect(response).to have_gitlab_http_status(303)
+ expect(response).to have_gitlab_http_status(:see_other)
expect(Ci::Build.exists?(build.id)).to be_falsy
expect(Ci::Pipeline.exists?(pipeline.id)).to be_falsy
@@ -766,7 +766,7 @@ describe Projects::PipelinesController do
it 'fails to delete pipeline' do
delete_pipeline
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -775,7 +775,7 @@ describe Projects::PipelinesController do
it 'fails to delete pipeline' do
delete_pipeline
- expect(response).to have_gitlab_http_status(403)
+ expect(response).to have_gitlab_http_status(:forbidden)
end
end
diff --git a/spec/controllers/projects/pipelines_settings_controller_spec.rb b/spec/controllers/projects/pipelines_settings_controller_spec.rb
index 16a43f62bd5..789b2104d3c 100644
--- a/spec/controllers/projects/pipelines_settings_controller_spec.rb
+++ b/spec/controllers/projects/pipelines_settings_controller_spec.rb
@@ -17,7 +17,7 @@ describe Projects::PipelinesSettingsController do
it 'redirects with 302 status code' do
get :show, params: { namespace_id: project.namespace, project_id: project }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
end
diff --git a/spec/controllers/projects/project_members_controller_spec.rb b/spec/controllers/projects/project_members_controller_spec.rb
index 0df19aa6e44..09420cc8556 100644
--- a/spec/controllers/projects/project_members_controller_spec.rb
+++ b/spec/controllers/projects/project_members_controller_spec.rb
@@ -11,7 +11,7 @@ describe Projects::ProjectMembersController do
it 'has the project_members address with a 200 status code' do
get :index, params: { namespace_id: project.namespace, project_id: project }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
context 'when project belongs to group' do
@@ -64,7 +64,7 @@ describe Projects::ProjectMembersController do
access_level: Gitlab::Access::GUEST
}
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(project.users).not_to include project_user
end
end
@@ -145,7 +145,7 @@ describe Projects::ProjectMembersController do
id: 42
}
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -162,7 +162,7 @@ describe Projects::ProjectMembersController do
id: member
}
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(project.members).to include member
end
end
@@ -211,7 +211,7 @@ describe Projects::ProjectMembersController do
project_id: project
}
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -246,7 +246,7 @@ describe Projects::ProjectMembersController do
project_id: project
}
- expect(response).to have_gitlab_http_status(403)
+ expect(response).to have_gitlab_http_status(:forbidden)
end
end
@@ -305,7 +305,7 @@ describe Projects::ProjectMembersController do
id: 42
}
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -322,7 +322,7 @@ describe Projects::ProjectMembersController do
id: member
}
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(project.members).not_to include member
end
end
diff --git a/spec/controllers/projects/raw_controller_spec.rb b/spec/controllers/projects/raw_controller_spec.rb
index aef8ef1d487..8cb48dca095 100644
--- a/spec/controllers/projects/raw_controller_spec.rb
+++ b/spec/controllers/projects/raw_controller_spec.rb
@@ -23,7 +23,7 @@ describe Projects::RawController do
it 'delivers ASCII file' do
subject
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.header['Content-Type']).to eq('text/plain; charset=utf-8')
expect(response.header['Content-Disposition']).to eq('inline')
expect(response.header[Gitlab::Workhorse::DETECT_HEADER]).to eq "true"
@@ -37,7 +37,7 @@ describe Projects::RawController do
it 'leaves image content disposition' do
subject
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.header['Content-Disposition']).to eq('inline')
expect(response.header[Gitlab::Workhorse::DETECT_HEADER]).to eq "true"
expect(response.header[Gitlab::Workhorse::SEND_DATA_HEADER]).to start_with('git-blob:')
@@ -63,7 +63,7 @@ describe Projects::RawController do
.to change { Gitlab::GitalyClient.get_request_count }.by(0)
expect(response.body).to eq(_('You cannot access the raw file. Please wait a minute.'))
- expect(response).to have_gitlab_http_status(429)
+ expect(response).to have_gitlab_http_status(:too_many_requests)
end
it 'logs the event on auth.log' do
@@ -94,7 +94,7 @@ describe Projects::RawController do
request.headers['X-Gitlab-External-Storage-Token'] = token
execute_raw_requests(requests: 6, project: project, file_path: file_path)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -113,7 +113,7 @@ describe Projects::RawController do
execute_raw_requests(requests: 3, project: project, file_path: modified_path)
expect(response.body).to eq(_('You cannot access the raw file. Please wait a minute.'))
- expect(response).to have_gitlab_http_status(429)
+ expect(response).to have_gitlab_http_status(:too_many_requests)
end
end
@@ -125,7 +125,7 @@ describe Projects::RawController do
it 'does not prevent from accessing the raw file' do
execute_raw_requests(requests: 10, project: project, file_path: file_path)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -141,14 +141,14 @@ describe Projects::RawController do
execute_raw_requests(requests: 6, project: project, file_path: file_path)
expect(response.body).to eq(_('You cannot access the raw file. Please wait a minute.'))
- expect(response).to have_gitlab_http_status(429)
+ expect(response).to have_gitlab_http_status(:too_many_requests)
# Accessing upcase version of readme
file_path = "#{commit_sha}/README.md"
execute_raw_requests(requests: 1, project: project, file_path: file_path)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
end
@@ -166,7 +166,7 @@ describe Projects::RawController do
it 'redirects to sign in page' do
execute_raw_requests(requests: 1, project: project, file_path: file_path)
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(response.location).to end_with('/users/sign_in')
end
end
@@ -176,7 +176,7 @@ describe Projects::RawController do
it 'calls the action normally' do
execute_raw_requests(requests: 1, project: project, file_path: file_path, token: user.static_object_token)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -184,7 +184,7 @@ describe Projects::RawController do
it 'redirects to sign in page' do
execute_raw_requests(requests: 1, project: project, file_path: file_path, token: 'foobar')
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(response.location).to end_with('/users/sign_in')
end
end
@@ -196,7 +196,7 @@ describe Projects::RawController do
request.headers['X-Gitlab-Static-Object-Token'] = user.static_object_token
execute_raw_requests(requests: 1, project: project, file_path: file_path)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -205,7 +205,7 @@ describe Projects::RawController do
request.headers['X-Gitlab-Static-Object-Token'] = 'foobar'
execute_raw_requests(requests: 1, project: project, file_path: file_path)
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(response.location).to end_with('/users/sign_in')
end
end
diff --git a/spec/controllers/projects/repositories_controller_spec.rb b/spec/controllers/projects/repositories_controller_spec.rb
index 084644484c5..aeb053fe9f6 100644
--- a/spec/controllers/projects/repositories_controller_spec.rb
+++ b/spec/controllers/projects/repositories_controller_spec.rb
@@ -45,7 +45,7 @@ describe Projects::RepositoriesController do
it 'handles legacy queries with the ref specified as ref in params' do
get :archive, params: { namespace_id: project.namespace, project_id: project, ref: 'feature' }, format: 'zip'
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(assigns(:ref)).to eq('feature')
expect(response.header[Gitlab::Workhorse::SEND_DATA_HEADER]).to start_with("git-archive:")
end
@@ -53,7 +53,7 @@ describe Projects::RepositoriesController do
it 'handles legacy queries with the ref specified as id in params' do
get :archive, params: { namespace_id: project.namespace, project_id: project, id: 'feature' }, format: 'zip'
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(assigns(:ref)).to eq('feature')
expect(response.header[Gitlab::Workhorse::SEND_DATA_HEADER]).to start_with("git-archive:")
end
@@ -61,7 +61,7 @@ describe Projects::RepositoriesController do
it 'prioritizes the id param over the ref param when both are specified' do
get :archive, params: { namespace_id: project.namespace, project_id: project, id: 'feature', ref: 'feature_conflict' }, format: 'zip'
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(assigns(:ref)).to eq('feature')
expect(response.header[Gitlab::Workhorse::SEND_DATA_HEADER]).to start_with("git-archive:")
end
@@ -74,7 +74,7 @@ describe Projects::RepositoriesController do
it "renders Not Found" do
get :archive, params: { namespace_id: project.namespace, project_id: project, id: "master" }, format: "zip"
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -82,7 +82,7 @@ describe Projects::RepositoriesController do
it 'sets appropriate caching headers' do
get_archive
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.header['ETag']).to be_present
expect(response.header['Cache-Control']).to include('max-age=60, private')
end
@@ -93,7 +93,7 @@ describe Projects::RepositoriesController do
it 'sets appropriate caching headers' do
get_archive
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.header['ETag']).to be_present
expect(response.header['Cache-Control']).to include('max-age=60, public')
end
@@ -103,7 +103,7 @@ describe Projects::RepositoriesController do
it 'max-age is set to 3600 in Cache-Control header' do
get_archive('ddd0f15ae83993f5cb66a927a28673882e99100b')
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.header['Cache-Control']).to include('max-age=3600')
end
end
@@ -116,7 +116,7 @@ describe Projects::RepositoriesController do
request.headers['If-None-Match'] = response.headers['ETag']
get_archive
- expect(response).to have_gitlab_http_status(304)
+ expect(response).to have_gitlab_http_status(:not_modified)
end
end
@@ -137,7 +137,7 @@ describe Projects::RepositoriesController do
it 'redirects to sign in page' do
get :archive, params: { namespace_id: project.namespace, project_id: project, id: 'master' }, format: 'zip'
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -146,7 +146,7 @@ describe Projects::RepositoriesController do
it 'calls the action normally' do
get :archive, params: { namespace_id: project.namespace, project_id: project, id: 'master', token: user.static_object_token }, format: 'zip'
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -154,7 +154,7 @@ describe Projects::RepositoriesController do
it 'redirects to sign in page' do
get :archive, params: { namespace_id: project.namespace, project_id: project, id: 'master', token: 'foobar' }, format: 'zip'
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
end
@@ -165,7 +165,7 @@ describe Projects::RepositoriesController do
request.headers['X-Gitlab-Static-Object-Token'] = user.static_object_token
get :archive, params: { namespace_id: project.namespace, project_id: project, id: 'master' }, format: 'zip'
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -174,7 +174,7 @@ describe Projects::RepositoriesController do
request.headers['X-Gitlab-Static-Object-Token'] = 'foobar'
get :archive, params: { namespace_id: project.namespace, project_id: project, id: 'master' }, format: 'zip'
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
end
diff --git a/spec/controllers/projects/runners_controller_spec.rb b/spec/controllers/projects/runners_controller_spec.rb
index 279b4f360c5..1893180fe9b 100644
--- a/spec/controllers/projects/runners_controller_spec.rb
+++ b/spec/controllers/projects/runners_controller_spec.rb
@@ -30,7 +30,7 @@ describe Projects::RunnersController do
runner.reload
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(runner.description).to eq(new_desc)
end
end
@@ -39,7 +39,7 @@ describe Projects::RunnersController do
it 'destroys the runner' do
delete :destroy, params: params
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(Ci::Runner.find_by(id: runner.id)).to be_nil
end
end
@@ -54,7 +54,7 @@ describe Projects::RunnersController do
runner.reload
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(runner.active).to eq(true)
end
end
@@ -69,7 +69,7 @@ describe Projects::RunnersController do
runner.reload
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(runner.active).to eq(false)
end
end
diff --git a/spec/controllers/projects/snippets_controller_spec.rb b/spec/controllers/projects/snippets_controller_spec.rb
index ee145a62b57..8233c0a0adb 100644
--- a/spec/controllers/projects/snippets_controller_spec.rb
+++ b/spec/controllers/projects/snippets_controller_spec.rb
@@ -35,7 +35,7 @@ describe Projects::SnippetsController do
get :index, params: { namespace_id: project.namespace, project_id: project }
expect(assigns(:snippets)).not_to include(project_snippet)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -48,7 +48,7 @@ describe Projects::SnippetsController do
get :index, params: { namespace_id: project.namespace, project_id: project }
expect(assigns(:snippets)).to include(project_snippet)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -61,7 +61,7 @@ describe Projects::SnippetsController do
get :index, params: { namespace_id: project.namespace, project_id: project }
expect(assigns(:snippets)).to include(project_snippet)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
end
@@ -318,7 +318,7 @@ describe Projects::SnippetsController do
it 'responds with status 404' do
get action, params: { namespace_id: project.namespace, project_id: project, id: project_snippet.to_param }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -331,7 +331,7 @@ describe Projects::SnippetsController do
get action, params: { namespace_id: project.namespace, project_id: project, id: project_snippet.to_param }
expect(assigns(:snippet)).to eq(project_snippet)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -344,7 +344,7 @@ describe Projects::SnippetsController do
get action, params: { namespace_id: project.namespace, project_id: project, id: project_snippet.to_param }
expect(assigns(:snippet)).to eq(project_snippet)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
end
@@ -354,7 +354,7 @@ describe Projects::SnippetsController do
it 'responds with status 404' do
get action, params: { namespace_id: project.namespace, project_id: project, id: 42 }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -366,7 +366,7 @@ describe Projects::SnippetsController do
it 'responds with status 404' do
get action, params: { namespace_id: project.namespace, project_id: project, id: 42 }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -386,7 +386,7 @@ describe Projects::SnippetsController do
let(:snippet_permission) { :private }
it 'responds with status 404' do
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -395,7 +395,7 @@ describe Projects::SnippetsController do
it 'responds with status 200' do
expect(assigns(:snippet)).to eq(project_snippet)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -407,7 +407,7 @@ describe Projects::SnippetsController do
it 'responds with status 404' do
expect(assigns(:snippet)).to eq(project_snippet)
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -501,7 +501,7 @@ describe Projects::SnippetsController do
it 'responds with status 404' do
delete :destroy, params: params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
diff --git a/spec/controllers/projects/stages_controller_spec.rb b/spec/controllers/projects/stages_controller_spec.rb
index a91e3523fd7..c38e3d2544f 100644
--- a/spec/controllers/projects/stages_controller_spec.rb
+++ b/spec/controllers/projects/stages_controller_spec.rb
@@ -25,7 +25,7 @@ describe Projects::StagesController do
it 'returns not authorized' do
play_manual_stage!
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
diff --git a/spec/controllers/projects/templates_controller_spec.rb b/spec/controllers/projects/templates_controller_spec.rb
index 07b8a36fefc..b4b04878181 100644
--- a/spec/controllers/projects/templates_controller_spec.rb
+++ b/spec/controllers/projects/templates_controller_spec.rb
@@ -110,7 +110,7 @@ describe Projects::TemplatesController do
it 'returns the template names' do
get(:names, params: { namespace_id: project.namespace, template_type: template_type, project_id: project }, format: :json)
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(json_response.size).to eq(1)
expect(json_response[0]['name']).to eq(expected_template_name)
end
@@ -121,7 +121,7 @@ describe Projects::TemplatesController do
get(:names, params: { namespace_id: project.namespace, template_type: template_type, project_id: project }, format: :json)
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
diff --git a/spec/controllers/projects/todos_controller_spec.rb b/spec/controllers/projects/todos_controller_spec.rb
index c12019fed5e..b7d40d2a452 100644
--- a/spec/controllers/projects/todos_controller_spec.rb
+++ b/spec/controllers/projects/todos_controller_spec.rb
@@ -22,7 +22,7 @@ describe Projects::TodosController do
it "doesn't create todo" do
expect { post_create }.not_to change { user.todos.count }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
diff --git a/spec/controllers/projects/tree_controller_spec.rb b/spec/controllers/projects/tree_controller_spec.rb
index 5df05a06f00..96838383540 100644
--- a/spec/controllers/projects/tree_controller_spec.rb
+++ b/spec/controllers/projects/tree_controller_spec.rb
@@ -85,7 +85,7 @@ describe Projects::TreeController do
context "valid SHA commit ID with path" do
let(:id) { '6d39438/.gitignore' }
- it { expect(response).to have_gitlab_http_status(302) }
+ it { expect(response).to have_gitlab_http_status(:found) }
end
end
diff --git a/spec/controllers/projects/uploads_controller_spec.rb b/spec/controllers/projects/uploads_controller_spec.rb
index a70669e86a6..bb5415ee62c 100644
--- a/spec/controllers/projects/uploads_controller_spec.rb
+++ b/spec/controllers/projects/uploads_controller_spec.rb
@@ -49,7 +49,7 @@ describe Projects::UploadsController do
it "responds with status internal_server_error" do
post_authorize
- expect(response).to have_gitlab_http_status(500)
+ expect(response).to have_gitlab_http_status(:internal_server_error)
expect(response.body).to eq(_('Error uploading file'))
end
end
diff --git a/spec/controllers/projects/usage_ping_controller_spec.rb b/spec/controllers/projects/usage_ping_controller_spec.rb
index a9abbff160d..284db93d7a8 100644
--- a/spec/controllers/projects/usage_ping_controller_spec.rb
+++ b/spec/controllers/projects/usage_ping_controller_spec.rb
@@ -24,7 +24,7 @@ describe Projects::UsagePingController do
it 'returns 302' do
subject
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -32,7 +32,7 @@ describe Projects::UsagePingController do
it 'returns 404' do
subject
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -57,7 +57,7 @@ describe Projects::UsagePingController do
it 'returns 404' do
subject
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
diff --git a/spec/controllers/projects/wikis_controller_spec.rb b/spec/controllers/projects/wikis_controller_spec.rb
index bfa555aab4c..6dd050af277 100644
--- a/spec/controllers/projects/wikis_controller_spec.rb
+++ b/spec/controllers/projects/wikis_controller_spec.rb
@@ -25,7 +25,7 @@ describe Projects::WikisController do
it 'redirects to #show and appends a `random_title` param' do
subject
- expect(response).to have_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(Rails.application.routes.recognize_path(response.redirect_url)).to include(
controller: 'projects/wikis',
action: 'show'
@@ -70,7 +70,7 @@ describe Projects::WikisController do
end
it "returns status #{expected_status}" do
- expect(response).to have_http_status(expected_status)
+ expect(response).to have_gitlab_http_status(expected_status)
end
end
@@ -103,7 +103,7 @@ describe Projects::WikisController do
subject
- expect(response).to have_http_status(:ok)
+ expect(response).to have_gitlab_http_status(:ok)
expect(assigns(:page).title).to eq(wiki_title)
end
@@ -113,7 +113,7 @@ describe Projects::WikisController do
subject
- expect(response).to have_http_status(:ok)
+ expect(response).to have_gitlab_http_status(:ok)
expect(flash[:notice]).to eq(_('The content of this page is not encoded in UTF-8. Edits can only be made via the Git repository.'))
end
end
@@ -204,7 +204,7 @@ describe Projects::WikisController do
it 'shows the edit page' do
subject
- expect(response).to have_http_status(:ok)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.body).to include(s_('Wiki|Edit Page'))
end
end
diff --git a/spec/controllers/sent_notifications_controller_spec.rb b/spec/controllers/sent_notifications_controller_spec.rb
index 4dd4f49dcf1..b4b867f5c66 100644
--- a/spec/controllers/sent_notifications_controller_spec.rb
+++ b/spec/controllers/sent_notifications_controller_spec.rb
@@ -30,6 +30,16 @@ describe SentNotificationsController do
let(:target_project) { project }
describe 'GET unsubscribe' do
+ shared_examples 'returns 404' do
+ it 'does not set the flash message' do
+ expect(controller).not_to set_flash[:notice]
+ end
+
+ it 'returns a 404' do
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+
context 'when the user is not logged in' do
context 'when the force param is passed' do
before do
@@ -156,6 +166,16 @@ describe SentNotificationsController do
end
end
end
+
+ context 'when the noteable associated to the notification has been deleted' do
+ before do
+ sent_notification.noteable.destroy!
+
+ get(:unsubscribe, params: { id: sent_notification.reply_key })
+ end
+
+ it_behaves_like 'returns 404'
+ end
end
context 'when the user is logged in' do
@@ -168,17 +188,7 @@ describe SentNotificationsController do
get(:unsubscribe, params: { id: sent_notification.reply_key.reverse })
end
- it 'does not unsubscribe the user' do
- expect(issue.subscribed?(user, project)).to be_truthy
- end
-
- it 'does not set the flash message' do
- expect(controller).not_to set_flash[:notice]
- end
-
- it 'returns a 404' do
- expect(response).to have_gitlab_http_status(:not_found)
- end
+ it_behaves_like 'returns 404'
end
context 'when the force param is passed' do
@@ -254,6 +264,16 @@ describe SentNotificationsController do
end
end
end
+
+ context 'when the noteable associated to the notification has been deleted' do
+ before do
+ sent_notification.noteable.destroy!
+
+ get(:unsubscribe, params: { id: sent_notification.reply_key })
+ end
+
+ it_behaves_like 'returns 404'
+ end
end
end
end
diff --git a/spec/features/projects/blobs/blob_line_permalink_updater_spec.rb b/spec/features/projects/blobs/blob_line_permalink_updater_spec.rb
index 1fc490ecbfe..e54137b9492 100644
--- a/spec/features/projects/blobs/blob_line_permalink_updater_spec.rb
+++ b/spec/features/projects/blobs/blob_line_permalink_updater_spec.rb
@@ -44,6 +44,17 @@ describe 'Blob button line permalinks (BlobLinePermalinkUpdater)', :js do
expect(find('.js-data-file-blob-permalink-url')['href']).to eq(get_absolute_url(project_blob_path(project, tree_join(sha, path), anchor: ending_fragment)))
end
+ it 'changes fragment hash if icon inside line number link is clicked' do
+ ending_fragment = "L7"
+
+ visit_blob
+
+ find("##{ending_fragment}").hover
+ find("##{ending_fragment} i").click
+
+ expect(find('.js-data-file-blob-permalink-url')['href']).to eq(get_absolute_url(project_blob_path(project, tree_join(sha, path), anchor: ending_fragment)))
+ end
+
it 'with initial fragment hash, changes fragment hash if line number clicked' do
fragment = "L1"
ending_fragment = "L5"
@@ -83,6 +94,17 @@ describe 'Blob button line permalinks (BlobLinePermalinkUpdater)', :js do
expect(find('.js-blob-blame-link')['href']).to eq(get_absolute_url(project_blame_path(project, tree_join('master', path), anchor: ending_fragment)))
end
+ it 'changes fragment hash if icon inside line number link is clicked' do
+ ending_fragment = "L7"
+
+ visit_blob
+
+ find("##{ending_fragment}").hover
+ find("##{ending_fragment} i").click
+
+ expect(find('.js-blob-blame-link')['href']).to eq(get_absolute_url(project_blame_path(project, tree_join('master', path), anchor: ending_fragment)))
+ end
+
it 'with initial fragment hash, changes fragment hash if line number clicked' do
fragment = "L1"
ending_fragment = "L5"
diff --git a/spec/frontend/ide/components/branches/item_spec.js b/spec/frontend/ide/components/branches/item_spec.js
index 1db3750609b..138443b715e 100644
--- a/spec/frontend/ide/components/branches/item_spec.js
+++ b/spec/frontend/ide/components/branches/item_spec.js
@@ -1,8 +1,8 @@
-import Vue from 'vue';
-import mountCompontent from 'helpers/vue_mount_component_helper';
+import { shallowMount } from '@vue/test-utils';
import router from '~/ide/ide_router';
import Item from '~/ide/components/branches/item.vue';
-import { getTimeago } from '~/lib/utils/datetime_utility';
+import Icon from '~/vue_shared/components/icon.vue';
+import Timeago from '~/vue_shared/components/time_ago_tooltip.vue';
import { projectData } from '../../mock_data';
const TEST_BRANCH = {
@@ -12,45 +12,45 @@ const TEST_BRANCH = {
const TEST_PROJECT_ID = projectData.name_with_namespace;
describe('IDE branch item', () => {
- const Component = Vue.extend(Item);
- let vm;
-
- beforeEach(() => {
- vm = mountCompontent(Component, {
- item: { ...TEST_BRANCH },
- projectId: TEST_PROJECT_ID,
- isActive: false,
+ let wrapper;
+
+ function createComponent(props = {}) {
+ wrapper = shallowMount(Item, {
+ propsData: {
+ item: { ...TEST_BRANCH },
+ projectId: TEST_PROJECT_ID,
+ isActive: false,
+ ...props,
+ },
});
- });
+ }
afterEach(() => {
- vm.$destroy();
+ wrapper.destroy();
});
- it('renders branch name and timeago', () => {
- const timeText = getTimeago().format(TEST_BRANCH.committedDate);
-
- expect(vm.$el.textContent).toContain(TEST_BRANCH.name);
- expect(vm.$el.querySelector('time')).toHaveText(timeText);
- expect(vm.$el.querySelector('.ic-mobile-issue-close')).toBe(null);
- });
+ describe('if not active', () => {
+ beforeEach(() => {
+ createComponent();
+ });
+ it('renders branch name and timeago', () => {
+ expect(wrapper.text()).toContain(TEST_BRANCH.name);
+ expect(wrapper.find(Timeago).props('time')).toBe(TEST_BRANCH.committedDate);
+ expect(wrapper.find(Icon).exists()).toBe(false);
+ });
- it('renders link to branch', () => {
- const expectedHref = router.resolve(`/project/${TEST_PROJECT_ID}/edit/${TEST_BRANCH.name}`)
- .href;
+ it('renders link to branch', () => {
+ const expectedHref = router.resolve(`/project/${TEST_PROJECT_ID}/edit/${TEST_BRANCH.name}`)
+ .href;
- expect(vm.$el.textContent).toMatch('a');
- expect(vm.$el).toHaveAttr('href', expectedHref);
+ expect(wrapper.text()).toMatch('a');
+ expect(wrapper.attributes('href')).toBe(expectedHref);
+ });
});
- it('renders icon if isActive', done => {
- vm.isActive = true;
+ it('renders icon if is not active', () => {
+ createComponent({ isActive: true });
- vm.$nextTick()
- .then(() => {
- expect(vm.$el.querySelector('.ic-mobile-issue-close')).not.toBe(null);
- })
- .then(done)
- .catch(done.fail);
+ expect(wrapper.find(Icon).exists()).toBe(true);
});
});
diff --git a/spec/frontend/ide/components/jobs/detail/scroll_button_spec.js b/spec/frontend/ide/components/jobs/detail/scroll_button_spec.js
index 096851a5401..b8dbca97ade 100644
--- a/spec/frontend/ide/components/jobs/detail/scroll_button_spec.js
+++ b/spec/frontend/ide/components/jobs/detail/scroll_button_spec.js
@@ -1,59 +1,50 @@
-import Vue from 'vue';
+import { shallowMount } from '@vue/test-utils';
+import Icon from '~/vue_shared/components/icon.vue';
import ScrollButton from '~/ide/components/jobs/detail/scroll_button.vue';
-import mountComponent from '../../../../helpers/vue_mount_component_helper';
describe('IDE job log scroll button', () => {
- const Component = Vue.extend(ScrollButton);
- let vm;
-
- beforeEach(() => {
- vm = mountComponent(Component, {
- direction: 'up',
- disabled: false,
+ let wrapper;
+
+ const createComponent = props => {
+ wrapper = shallowMount(ScrollButton, {
+ propsData: {
+ direction: 'up',
+ disabled: false,
+ ...props,
+ },
});
- });
+ };
afterEach(() => {
- vm.$destroy();
+ wrapper.destroy();
});
- describe('iconName', () => {
- ['up', 'down'].forEach(direction => {
- it(`returns icon name for ${direction}`, () => {
- vm.direction = direction;
+ describe.each`
+ direction | icon | title
+ ${'up'} | ${'scroll_up'} | ${'Scroll to top'}
+ ${'down'} | ${'scroll_down'} | ${'Scroll to bottom'}
+ `('for $direction direction', ({ direction, icon, title }) => {
+ beforeEach(() => createComponent({ direction }));
- expect(vm.iconName).toBe(`scroll_${direction}`);
- });
+ it('returns proper icon name', () => {
+ expect(wrapper.find(Icon).props('name')).toBe(icon);
});
- });
- describe('tooltipTitle', () => {
- it('returns title for up', () => {
- expect(vm.tooltipTitle).toBe('Scroll to top');
- });
-
- it('returns title for down', () => {
- vm.direction = 'down';
-
- expect(vm.tooltipTitle).toBe('Scroll to bottom');
+ it('returns proper title', () => {
+ expect(wrapper.attributes('data-original-title')).toBe(title);
});
});
it('emits click event on click', () => {
- jest.spyOn(vm, '$emit').mockImplementation(() => {});
-
- vm.$el.querySelector('.btn-scroll').click();
+ createComponent();
- expect(vm.$emit).toHaveBeenCalledWith('click');
+ wrapper.find('button').trigger('click');
+ expect(wrapper.emitted().click).toBeDefined();
});
- it('disables button when disabled is true', done => {
- vm.disabled = true;
+ it('disables button when disabled is true', () => {
+ createComponent({ disabled: true });
- vm.$nextTick(() => {
- expect(vm.$el.querySelector('.btn-scroll').hasAttribute('disabled')).toBe(true);
-
- done();
- });
+ expect(wrapper.find('button').attributes('disabled')).toBe('disabled');
});
});
diff --git a/spec/frontend/ide/components/preview/navigator_spec.js b/spec/frontend/ide/components/preview/navigator_spec.js
index 650bb7660a4..aa15f391e77 100644
--- a/spec/frontend/ide/components/preview/navigator_spec.js
+++ b/spec/frontend/ide/components/preview/navigator_spec.js
@@ -1,167 +1,177 @@
-import Vue from 'vue';
-import mountComponent from 'helpers/vue_mount_component_helper';
+import { shallowMount } from '@vue/test-utils';
import { TEST_HOST } from 'helpers/test_constants';
+import { GlLoadingIcon } from '@gitlab/ui';
import ClientsideNavigator from '~/ide/components/preview/navigator.vue';
+import { listen } from 'codesandbox-api';
+
+jest.mock('codesandbox-api', () => ({
+ listen: jest.fn().mockReturnValue(jest.fn()),
+}));
describe('IDE clientside preview navigator', () => {
- let vm;
- let Component;
+ let wrapper;
let manager;
+ let listenHandler;
- beforeAll(() => {
- Component = Vue.extend(ClientsideNavigator);
- });
+ const findBackButton = () => wrapper.findAll('button').at(0);
+ const findForwardButton = () => wrapper.findAll('button').at(1);
+ const findRefreshButton = () => wrapper.findAll('button').at(2);
beforeEach(() => {
+ listen.mockClear();
manager = { bundlerURL: TEST_HOST, iframe: { src: '' } };
- vm = mountComponent(Component, { manager });
+ wrapper = shallowMount(ClientsideNavigator, { propsData: { manager } });
+ [[listenHandler]] = listen.mock.calls;
});
afterEach(() => {
- vm.$destroy();
+ wrapper.destroy();
});
it('renders readonly URL bar', () => {
- expect(vm.$el.querySelector('input[readonly]').value).toBe('/');
+ listenHandler({ type: 'urlchange', url: manager.bundlerURL });
+ return wrapper.vm.$nextTick(() => {
+ expect(wrapper.find('input[readonly]').element.value).toBe('/');
+ });
});
- it('disables back button when navigationStack is empty', () => {
- expect(vm.$el.querySelector('.ide-navigator-btn')).toHaveAttr('disabled');
- expect(vm.$el.querySelector('.ide-navigator-btn').classList).toContain('disabled-content');
+ it('renders loading icon by default', () => {
+ expect(wrapper.find(GlLoadingIcon).exists()).toBe(true);
});
- it('disables forward button when forwardNavigationStack is empty', () => {
- vm.forwardNavigationStack = [];
-
- expect(vm.$el.querySelectorAll('.ide-navigator-btn')[1]).toHaveAttr('disabled');
- expect(vm.$el.querySelectorAll('.ide-navigator-btn')[1].classList).toContain(
- 'disabled-content',
- );
+ it('removes loading icon when done event is fired', () => {
+ listenHandler({ type: 'done' });
+ return wrapper.vm.$nextTick(() => {
+ expect(wrapper.find(GlLoadingIcon).exists()).toBe(false);
+ });
});
- it('calls back method when clicking back button', done => {
- vm.navigationStack.push('/test');
- vm.navigationStack.push('/test2');
- jest.spyOn(vm, 'back').mockReturnValue();
-
- vm.$nextTick(() => {
- vm.$el.querySelector('.ide-navigator-btn').click();
-
- expect(vm.back).toHaveBeenCalled();
-
- done();
+ it('does not count visiting same url multiple times', () => {
+ listenHandler({ type: 'done' });
+ listenHandler({ type: 'done', url: `${TEST_HOST}/url1` });
+ listenHandler({ type: 'done', url: `${TEST_HOST}/url1` });
+ return wrapper.vm.$nextTick().then(() => {
+ expect(findBackButton().attributes('disabled')).toBe('disabled');
});
});
- it('calls forward method when clicking forward button', done => {
- vm.forwardNavigationStack.push('/test');
- jest.spyOn(vm, 'forward').mockReturnValue();
+ it('unsubscribes from listen on destroy', () => {
+ const unsubscribeFn = listen();
- vm.$nextTick(() => {
- vm.$el.querySelectorAll('.ide-navigator-btn')[1].click();
-
- expect(vm.forward).toHaveBeenCalled();
-
- done();
- });
+ wrapper.destroy();
+ expect(unsubscribeFn).toHaveBeenCalled();
});
- describe('onUrlChange', () => {
- it('updates the path', () => {
- vm.onUrlChange({ url: `${TEST_HOST}/url` });
-
- expect(vm.path).toBe('/url');
+ describe('back button', () => {
+ beforeEach(() => {
+ listenHandler({ type: 'done' });
+ listenHandler({ type: 'urlchange', url: TEST_HOST });
+ return wrapper.vm.$nextTick();
});
- it('sets currentBrowsingIndex 0 if not already set', () => {
- vm.onUrlChange({ url: `${TEST_HOST}/url` });
-
- expect(vm.currentBrowsingIndex).toBe(0);
+ it('is disabled by default', () => {
+ expect(findBackButton().attributes('disabled')).toBe('disabled');
});
- it('increases currentBrowsingIndex if path doesnt match', () => {
- vm.onUrlChange({ url: `${TEST_HOST}/url` });
-
- vm.onUrlChange({ url: `${TEST_HOST}/url2` });
-
- expect(vm.currentBrowsingIndex).toBe(1);
+ it('is enabled when there is previous entry', () => {
+ listenHandler({ type: 'urlchange', url: `${TEST_HOST}/url1` });
+ return wrapper.vm.$nextTick().then(() => {
+ findBackButton().trigger('click');
+ expect(findBackButton().attributes('disabled')).toBeFalsy();
+ });
});
- it('does not increase currentBrowsingIndex if path matches', () => {
- vm.onUrlChange({ url: `${TEST_HOST}/url` });
-
- vm.onUrlChange({ url: `${TEST_HOST}/url` });
-
- expect(vm.currentBrowsingIndex).toBe(0);
+ it('is disabled when there is no previous entry', () => {
+ listenHandler({ type: 'urlchange', url: `${TEST_HOST}/url1` });
+ return wrapper.vm
+ .$nextTick()
+ .then(() => {
+ findBackButton().trigger('click');
+
+ return wrapper.vm.$nextTick();
+ })
+ .then(() => {
+ expect(findBackButton().attributes('disabled')).toBe('disabled');
+ });
});
- it('pushes path into navigation stack', () => {
- vm.onUrlChange({ url: `${TEST_HOST}/url` });
+ it('updates manager iframe src', () => {
+ listenHandler({ type: 'urlchange', url: `${TEST_HOST}/url1` });
+ listenHandler({ type: 'urlchange', url: `${TEST_HOST}/url2` });
+ return wrapper.vm.$nextTick().then(() => {
+ findBackButton().trigger('click');
- expect(vm.navigationStack).toEqual(['/url']);
+ expect(manager.iframe.src).toBe(`${TEST_HOST}/url1`);
+ });
});
});
- describe('back', () => {
+ describe('forward button', () => {
beforeEach(() => {
- vm.path = '/test2';
- vm.currentBrowsingIndex = 1;
- vm.navigationStack.push('/test');
- vm.navigationStack.push('/test2');
-
- jest.spyOn(vm, 'visitPath').mockReturnValue();
-
- vm.back();
+ listenHandler({ type: 'done' });
+ listenHandler({ type: 'urlchange', url: TEST_HOST });
+ return wrapper.vm.$nextTick();
});
- it('visits the last entry in navigationStack', () => {
- expect(vm.visitPath).toHaveBeenCalledWith('/test');
+ it('is disabled by default', () => {
+ expect(findForwardButton().attributes('disabled')).toBe('disabled');
});
- it('adds last entry to forwardNavigationStack', () => {
- expect(vm.forwardNavigationStack).toEqual(['/test2']);
+ it('is enabled when there is next entry', () => {
+ listenHandler({ type: 'urlchange', url: `${TEST_HOST}/url1` });
+ return wrapper.vm
+ .$nextTick()
+ .then(() => {
+ findBackButton().trigger('click');
+ return wrapper.vm.$nextTick();
+ })
+ .then(() => {
+ expect(findForwardButton().attributes('disabled')).toBeFalsy();
+ });
});
- it('clears navigation stack if currentBrowsingIndex is 1', () => {
- expect(vm.navigationStack).toEqual([]);
+ it('is disabled when there is no next entry', () => {
+ listenHandler({ type: 'urlchange', url: `${TEST_HOST}/url1` });
+ return wrapper.vm
+ .$nextTick()
+ .then(() => {
+ findBackButton().trigger('click');
+ return wrapper.vm.$nextTick();
+ })
+ .then(() => {
+ findForwardButton().trigger('click');
+ return wrapper.vm.$nextTick();
+ })
+ .then(() => {
+ expect(findForwardButton().attributes('disabled')).toBe('disabled');
+ });
});
- it('sets currentBrowsingIndex to null is currentBrowsingIndex is 1', () => {
- expect(vm.currentBrowsingIndex).toBe(null);
- });
- });
-
- describe('forward', () => {
- it('calls visitPath with first entry in forwardNavigationStack', () => {
- jest.spyOn(vm, 'visitPath').mockReturnValue();
-
- vm.forwardNavigationStack.push('/test');
- vm.forwardNavigationStack.push('/test2');
+ it('updates manager iframe src', () => {
+ listenHandler({ type: 'urlchange', url: `${TEST_HOST}/url1` });
+ listenHandler({ type: 'urlchange', url: `${TEST_HOST}/url2` });
+ return wrapper.vm.$nextTick().then(() => {
+ findBackButton().trigger('click');
- vm.forward();
-
- expect(vm.visitPath).toHaveBeenCalledWith('/test');
+ expect(manager.iframe.src).toBe(`${TEST_HOST}/url1`);
+ });
});
});
- describe('refresh', () => {
- it('calls refresh with current path', () => {
- jest.spyOn(vm, 'visitPath').mockReturnValue();
-
- vm.path = '/test';
-
- vm.refresh();
-
- expect(vm.visitPath).toHaveBeenCalledWith('/test');
+ describe('refresh button', () => {
+ const url = `${TEST_HOST}/some_url`;
+ beforeEach(() => {
+ listenHandler({ type: 'done' });
+ listenHandler({ type: 'urlchange', url });
+ return wrapper.vm.$nextTick();
});
- });
- describe('visitPath', () => {
- it('updates iframe src with passed in path', () => {
- vm.visitPath('/testpath');
+ it('calls refresh with current path', () => {
+ manager.iframe.src = 'something-other';
+ findRefreshButton().trigger('click');
- expect(manager.iframe.src).toBe(`${TEST_HOST}/testpath`);
+ expect(manager.iframe.src).toBe(url);
});
});
});
diff --git a/spec/requests/api/group_export_spec.rb b/spec/requests/api/group_export_spec.rb
index ac4853e5388..6128f2e4a87 100644
--- a/spec/requests/api/group_export_spec.rb
+++ b/spec/requests/api/group_export_spec.rb
@@ -30,25 +30,39 @@ describe API::GroupExport do
group.add_owner(user)
end
- context 'when export file exists' do
+ context 'group_import_export feature flag enabled' do
before do
- upload.export_file = fixture_file_upload('spec/fixtures/group_export.tar.gz', "`/tar.gz")
- upload.save!
+ stub_feature_flags(group_import_export: true)
end
- it 'downloads exported group archive' do
- get api(download_path, user)
+ context 'when export file exists' do
+ before do
+ upload.export_file = fixture_file_upload('spec/fixtures/group_export.tar.gz', "`/tar.gz")
+ upload.save!
+ end
- expect(response).to have_gitlab_http_status(200)
- end
+ it 'downloads exported group archive' do
+ get api(download_path, user)
- context 'when export_file.file does not exist' do
- before do
- expect_next_instance_of(ImportExportUploader) do |uploader|
- expect(uploader).to receive(:file).and_return(nil)
+ expect(response).to have_gitlab_http_status(200)
+ end
+
+ context 'when export_file.file does not exist' do
+ before do
+ expect_next_instance_of(ImportExportUploader) do |uploader|
+ expect(uploader).to receive(:file).and_return(nil)
+ end
+ end
+
+ it 'returns 404' do
+ get api(download_path, user)
+
+ expect(response).to have_gitlab_http_status(404)
end
end
+ end
+ context 'when export file does not exist' do
it 'returns 404' do
get api(download_path, user)
@@ -57,8 +71,12 @@ describe API::GroupExport do
end
end
- context 'when export file does not exist' do
- it 'returns 404' do
+ context 'group_import_export feature flag disabled' do
+ before do
+ stub_feature_flags(group_import_export: false)
+ end
+
+ it 'responds with 404 Not Found' do
get api(download_path, user)
expect(response).to have_gitlab_http_status(404)
@@ -67,27 +85,45 @@ describe API::GroupExport do
end
describe 'POST /groups/:group_id/export' do
- context 'when user is a group owner' do
+ context 'group_import_export feature flag enabled' do
before do
- group.add_owner(user)
+ stub_feature_flags(group_import_export: true)
end
- it 'accepts download' do
- post api(path, user)
+ context 'when user is a group owner' do
+ before do
+ group.add_owner(user)
+ end
+
+ it 'accepts download' do
+ post api(path, user)
+
+ expect(response).to have_gitlab_http_status(202)
+ end
+ end
+
+ context 'when user is not a group owner' do
+ before do
+ group.add_developer(user)
+ end
- expect(response).to have_gitlab_http_status(202)
+ it 'forbids the request' do
+ post api(path, user)
+
+ expect(response).to have_gitlab_http_status(403)
+ end
end
end
- context 'when user is not a group owner' do
+ context 'group_import_export feature flag disabled' do
before do
- group.add_developer(user)
+ stub_feature_flags(group_import_export: false)
end
- it 'forbids the request' do
+ it 'responds with 404 Not Found' do
post api(path, user)
- expect(response).to have_gitlab_http_status(403)
+ expect(response).to have_gitlab_http_status(404)
end
end
end