Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
ee7fba4b84
commit
6755df108b
2
Gemfile
2
Gemfile
|
@ -150,7 +150,7 @@ gem 'wikicloth', '0.8.1'
|
||||||
gem 'asciidoctor', '~> 2.0.10'
|
gem 'asciidoctor', '~> 2.0.10'
|
||||||
gem 'asciidoctor-include-ext', '~> 0.3.1', require: false
|
gem 'asciidoctor-include-ext', '~> 0.3.1', require: false
|
||||||
gem 'asciidoctor-plantuml', '0.0.10'
|
gem 'asciidoctor-plantuml', '0.0.10'
|
||||||
gem 'rouge', '~> 3.11.0'
|
gem 'rouge', '~> 3.15.0'
|
||||||
gem 'truncato', '~> 0.7.11'
|
gem 'truncato', '~> 0.7.11'
|
||||||
gem 'bootstrap_form', '~> 4.2.0'
|
gem 'bootstrap_form', '~> 4.2.0'
|
||||||
gem 'nokogiri', '~> 1.10.5'
|
gem 'nokogiri', '~> 1.10.5'
|
||||||
|
|
|
@ -873,7 +873,7 @@ GEM
|
||||||
retriable (3.1.2)
|
retriable (3.1.2)
|
||||||
rinku (2.0.0)
|
rinku (2.0.0)
|
||||||
rotp (2.1.2)
|
rotp (2.1.2)
|
||||||
rouge (3.11.0)
|
rouge (3.15.0)
|
||||||
rqrcode (0.7.0)
|
rqrcode (0.7.0)
|
||||||
chunky_png
|
chunky_png
|
||||||
rqrcode-rails3 (0.1.7)
|
rqrcode-rails3 (0.1.7)
|
||||||
|
|
|
@ -163,7 +163,7 @@ export const createCommitPayload = ({
|
||||||
});
|
});
|
||||||
|
|
||||||
export const createNewMergeRequestUrl = (projectUrl, source, target) =>
|
export const createNewMergeRequestUrl = (projectUrl, source, target) =>
|
||||||
`${projectUrl}/merge_requests/new?merge_request[source_branch]=${source}&merge_request[target_branch]=${target}&nav_source=webide`;
|
`${projectUrl}/-/merge_requests/new?merge_request[source_branch]=${source}&merge_request[target_branch]=${target}&nav_source=webide`;
|
||||||
|
|
||||||
const sortTreesByTypeAndName = (a, b) => {
|
const sortTreesByTypeAndName = (a, b) => {
|
||||||
if (a.type === 'tree' && b.type === 'blob') {
|
if (a.type === 'tree' && b.type === 'blob') {
|
||||||
|
|
|
@ -32,17 +32,17 @@ import { __ } from './locale';
|
||||||
//
|
//
|
||||||
// <ul class="nav-links merge-request-tabs">
|
// <ul class="nav-links merge-request-tabs">
|
||||||
// <li class="notes-tab active">
|
// <li class="notes-tab active">
|
||||||
// <a data-action="notes" data-target="#notes" data-toggle="tab" href="/foo/bar/merge_requests/1">
|
// <a data-action="notes" data-target="#notes" data-toggle="tab" href="/foo/bar/-/merge_requests/1">
|
||||||
// Discussion
|
// Discussion
|
||||||
// </a>
|
// </a>
|
||||||
// </li>
|
// </li>
|
||||||
// <li class="commits-tab">
|
// <li class="commits-tab">
|
||||||
// <a data-action="commits" data-target="#commits" data-toggle="tab" href="/foo/bar/merge_requests/1/commits">
|
// <a data-action="commits" data-target="#commits" data-toggle="tab" href="/foo/bar/-/merge_requests/1/commits">
|
||||||
// Commits
|
// Commits
|
||||||
// </a>
|
// </a>
|
||||||
// </li>
|
// </li>
|
||||||
// <li class="diffs-tab">
|
// <li class="diffs-tab">
|
||||||
// <a data-action="diffs" data-target="#diffs" data-toggle="tab" href="/foo/bar/merge_requests/1/diffs">
|
// <a data-action="diffs" data-target="#diffs" data-toggle="tab" href="/foo/bar/-/merge_requests/1/diffs">
|
||||||
// Diffs
|
// Diffs
|
||||||
// </a>
|
// </a>
|
||||||
// </li>
|
// </li>
|
||||||
|
@ -260,17 +260,17 @@ export default class MergeRequestTabs {
|
||||||
//
|
//
|
||||||
// Examples:
|
// Examples:
|
||||||
//
|
//
|
||||||
// location.pathname # => "/namespace/project/merge_requests/1"
|
// location.pathname # => "/namespace/project/-/merge_requests/1"
|
||||||
// setCurrentAction('diffs')
|
// setCurrentAction('diffs')
|
||||||
// location.pathname # => "/namespace/project/merge_requests/1/diffs"
|
// location.pathname # => "/namespace/project/-/merge_requests/1/diffs"
|
||||||
//
|
//
|
||||||
// location.pathname # => "/namespace/project/merge_requests/1/diffs"
|
// location.pathname # => "/namespace/project/-/merge_requests/1/diffs"
|
||||||
// setCurrentAction('show')
|
// setCurrentAction('show')
|
||||||
// location.pathname # => "/namespace/project/merge_requests/1"
|
// location.pathname # => "/namespace/project/-/merge_requests/1"
|
||||||
//
|
//
|
||||||
// location.pathname # => "/namespace/project/merge_requests/1/diffs"
|
// location.pathname # => "/namespace/project/-/merge_requests/1/diffs"
|
||||||
// setCurrentAction('commits')
|
// setCurrentAction('commits')
|
||||||
// location.pathname # => "/namespace/project/merge_requests/1/commits"
|
// location.pathname # => "/namespace/project/-/merge_requests/1/commits"
|
||||||
//
|
//
|
||||||
// Returns the new URL String
|
// Returns the new URL String
|
||||||
setCurrentAction(action) {
|
setCurrentAction(action) {
|
||||||
|
|
|
@ -62,7 +62,7 @@ module ChatMessage
|
||||||
end
|
end
|
||||||
|
|
||||||
def merge_request_url
|
def merge_request_url
|
||||||
"#{project_url}/merge_requests/#{merge_request_iid}"
|
"#{project_url}/-/merge_requests/#{merge_request_iid}"
|
||||||
end
|
end
|
||||||
|
|
||||||
# overridden in EE
|
# overridden in EE
|
||||||
|
|
|
@ -184,7 +184,7 @@ class HipchatService < Service
|
||||||
description = obj_attr[:description]
|
description = obj_attr[:description]
|
||||||
title = render_line(obj_attr[:title])
|
title = render_line(obj_attr[:title])
|
||||||
|
|
||||||
merge_request_url = "#{project_url}/merge_requests/#{merge_request_id}"
|
merge_request_url = "#{project_url}/-/merge_requests/#{merge_request_id}"
|
||||||
merge_request_link = "<a href=\"#{merge_request_url}\">merge request !#{merge_request_id}</a>"
|
merge_request_link = "<a href=\"#{merge_request_url}\">merge request !#{merge_request_id}</a>"
|
||||||
message = ["#{user_name} #{state} #{merge_request_link} in " \
|
message = ["#{user_name} #{state} #{merge_request_link} in " \
|
||||||
"#{project_link}: <b>#{title}</b>"]
|
"#{project_link}: <b>#{title}</b>"]
|
||||||
|
|
|
@ -15,8 +15,8 @@ module Secpick
|
||||||
DEFAULT_REMOTE = 'dev'.freeze
|
DEFAULT_REMOTE = 'dev'.freeze
|
||||||
SECURITY_REMOTE = 'security'.freeze
|
SECURITY_REMOTE = 'security'.freeze
|
||||||
|
|
||||||
NEW_MR_URL = 'https://dev.gitlab.org/gitlab/gitlabhq/merge_requests/new'.freeze
|
NEW_MR_URL = 'https://dev.gitlab.org/gitlab/gitlabhq/-/merge_requests/new'.freeze
|
||||||
SECURITY_MR_URL = 'https://gitlab.com/gitlab-org/security/gitlab/merge_requests/new'.freeze
|
SECURITY_MR_URL = 'https://gitlab.com/gitlab-org/security/gitlab/-/merge_requests/new'.freeze
|
||||||
|
|
||||||
class SecurityFix
|
class SecurityFix
|
||||||
def initialize
|
def initialize
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: Move merge request routes under /-/ scope
|
||||||
|
merge_request: 21126
|
||||||
|
author:
|
||||||
|
type: deprecated
|
|
@ -281,6 +281,8 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
draw :merge_requests
|
||||||
|
|
||||||
# The wiki and repository routing contains wildcard characters so
|
# The wiki and repository routing contains wildcard characters so
|
||||||
# its preferable to keep it below all other project routes
|
# its preferable to keep it below all other project routes
|
||||||
draw :repository_scoped
|
draw :repository_scoped
|
||||||
|
@ -339,17 +341,6 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Unscoped route. It will be replaced with redirect to /-/merge_requests/
|
|
||||||
# Issue https://gitlab.com/gitlab-org/gitlab/issues/118849
|
|
||||||
draw :merge_requests
|
|
||||||
|
|
||||||
# To ensure an old unscoped routing is used for the UI we need to
|
|
||||||
# add prefix 'as' to the scope routing and place it below original MR routing.
|
|
||||||
# Issue https://gitlab.com/gitlab-org/gitlab/issues/118849
|
|
||||||
scope '-', as: 'scoped' do
|
|
||||||
draw :merge_requests
|
|
||||||
end
|
|
||||||
|
|
||||||
resources :pipelines, only: [:index, :new, :create, :show, :destroy] do
|
resources :pipelines, only: [:index, :new, :create, :show, :destroy] do
|
||||||
collection do
|
collection do
|
||||||
resource :pipelines_settings, path: 'settings', only: [:show, :update]
|
resource :pipelines_settings, path: 'settings', only: [:show, :update]
|
||||||
|
@ -510,7 +501,7 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
|
||||||
:forks, :group_links, :import, :avatar, :mirror,
|
:forks, :group_links, :import, :avatar, :mirror,
|
||||||
:cycle_analytics, :mattermost, :variables, :triggers,
|
:cycle_analytics, :mattermost, :variables, :triggers,
|
||||||
:environments, :protected_environments, :error_tracking,
|
:environments, :protected_environments, :error_tracking,
|
||||||
:serverless, :clusters, :audit_events, :wikis)
|
:serverless, :clusters, :audit_events, :wikis, :merge_requests)
|
||||||
end
|
end
|
||||||
|
|
||||||
# rubocop: disable Cop/PutProjectRoutesUnderScope
|
# rubocop: disable Cop/PutProjectRoutesUnderScope
|
||||||
|
|
|
@ -56,13 +56,16 @@ possible.
|
||||||
|
|
||||||
The GraphQL API includes the following queries at the root level:
|
The GraphQL API includes the following queries at the root level:
|
||||||
|
|
||||||
1. `project` : Project information, with many of its associations such as issues and merge requests also available.
|
1. `project` : Project information, with many of its associations such as issues and merge requests.
|
||||||
1. `group` : Basic group information and epics **(ULTIMATE)** are currently supported.
|
1. `group` : Basic group information and epics **(ULTIMATE)** are currently supported.
|
||||||
1. `namespace` : Within a namespace it is also possible to fetch `projects`.
|
1. `namespace` : Within a namespace it is also possible to fetch `projects`.
|
||||||
1. `currentUser`: Information about the currently logged in user.
|
1. `currentUser`: Information about the currently logged in user.
|
||||||
1. `metaData`: Metadata about GitLab and the GraphQL API.
|
1. `metaData`: Metadata about GitLab and the GraphQL API.
|
||||||
1. `snippets`: Snippets visible to the currently logged in user.
|
1. `snippets`: Snippets visible to the currently logged in user.
|
||||||
|
|
||||||
|
New associations and root level objects are constantly being added.
|
||||||
|
See the [GraphQL API Reference](reference/index.md) for up-to-date information.
|
||||||
|
|
||||||
Root-level queries are defined in
|
Root-level queries are defined in
|
||||||
[`app/graphql/types/query_type.rb`](https://gitlab.com/gitlab-org/gitlab/blob/master/app/graphql/types/query_type.rb).
|
[`app/graphql/types/query_type.rb`](https://gitlab.com/gitlab-org/gitlab/blob/master/app/graphql/types/query_type.rb).
|
||||||
|
|
||||||
|
|
|
@ -4,31 +4,56 @@ description: "Learn how long your open merge requests have spent in code review,
|
||||||
|
|
||||||
# Code Review Analytics **(STARTER)**
|
# Code Review Analytics **(STARTER)**
|
||||||
|
|
||||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/38062) in GitLab ([Starter](https://about.gitlab.com/pricing/)) 12.7.
|
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/38062) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.7.
|
||||||
|
|
||||||
Want to learn how long your open merge requests have spent in code review? Or what distinguishes your longest-running code reviews? These are some of the questions Code Review Analytics is designed to answer.
|
Code Review Analytics can be used to answer questions like:
|
||||||
|
|
||||||
|
- How long do open merge requests spend in code review?
|
||||||
|
- What distinguishes your longest-running code reviews?
|
||||||
|
|
||||||
NOTE: **Note:**
|
NOTE: **Note:**
|
||||||
Initially no data will appear. Data will populate as users comment on open merge requests.
|
Initially no data will appear. Data is populated as users comment on open merge requests.
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
Code Review Analytics displays a collection of merge requests in a table. These are all the open merge requests that are considered to be in code review. This feature considers code review to begin when a merge request receives its first comment from someone other than the author. The rows of the table are sorted by review time so the longest reviews appear at the top. There are also columns to display the author, approvers, comment count, and line -/+ counts.
|
Code Review Analytics displays a table of open merge requests, which are considered to be in code review.
|
||||||
|
Code review starts when a merge request receives its first comment from someone other than the author.
|
||||||
|
|
||||||
This feature is designed for [development team leaders](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#delaney-development-team-lead) and others who want to understand broad code review dynamics, and identify patterns to help explain them. You can use Code Review Analytics to expose your team's unique challenges with code review, and identify improvements that might substantially accelerate your development cycle.
|
The Code Review Analytics table:
|
||||||
|
|
||||||
|
- Is sorted by review time, so the longest reviews appear at the top.
|
||||||
|
- Has columns to display the author, approvers, comment count, and line -/+ counts.
|
||||||
|
|
||||||
|
This feature is designed for [development team leaders](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#delaney-development-team-lead)
|
||||||
|
and others who want to understand broad code review dynamics, and identify patterns to help explain them.
|
||||||
|
|
||||||
|
You can use Code Review Analytics to expose your team's unique challenges with code review, and
|
||||||
|
identify improvements that might substantially accelerate your development cycle.
|
||||||
|
|
||||||
## Use cases
|
## Use cases
|
||||||
|
|
||||||
Perhaps your team agrees that code review is moving too slow, or the [Cycle Analytics feature](https://docs.gitlab.com/ee/user/analytics/cycle_analytics.html) shows that "Review" is your team's most time-consuming step. You can use Code Review Analytics to see what is currently moving slowest, and analyze the patterns and trends between them. Lots of comments or commits? Maybe the code is too complex. A particular author is involved? Maybe more training is advisable. Few comments and approvers? Maybe your team is understaffed.
|
Code Review Analytics can be used when:
|
||||||
|
|
||||||
|
- Your team agrees that code review is moving too slow.
|
||||||
|
- The [Cycle Analytics feature](cycle_analytics.md) shows that reviews are your team's most time-consuming step.
|
||||||
|
|
||||||
|
You can use Code Review Analytics to see what is currently moving slowest, and analyze the patterns
|
||||||
|
and trends between them. For example:
|
||||||
|
|
||||||
|
- Lots of comments or commits? Maybe the code is too complex.
|
||||||
|
- A particular author is involved? Maybe more training is required.
|
||||||
|
- Few comments and approvers? Maybe your team is understaffed.
|
||||||
|
|
||||||
## Permissions
|
## Permissions
|
||||||
|
|
||||||
- On [Starter or Bronze tier](https://about.gitlab.com/pricing/) and above.
|
- On [Starter or Bronze tier](https://about.gitlab.com/pricing/) and above.
|
||||||
- By users with [Reporter access] and above.
|
- By users with Reporter access and above.
|
||||||
|
|
||||||
## Feature flag
|
## Disable with feature flag
|
||||||
|
|
||||||
Code Review Analytics is [currently protected by a feature flag](https://gitlab.com/gitlab-org/gitlab/issues/194165) that defaults to "enabled" - meaning the feature is available. If you experience performance problems or otherwise wish to disable the feature, a GitLab administrator can execute a command in a Rails console:
|
Code Review Analytics is [currently enabled by a feature flag](https://gitlab.com/gitlab-org/gitlab/issues/194165)
|
||||||
|
that defaults to ON, meaning the feature is available. If you experience performance problems or
|
||||||
|
otherwise wish to disable the feature, a GitLab administrator can execute a command in a Rails console:
|
||||||
|
|
||||||
```ruby
|
```ruby
|
||||||
Feature.disable(:code_review_analytics)
|
Feature.disable(:code_review_analytics)
|
||||||
|
|
|
@ -16,11 +16,11 @@ Once enabled, click on **Analytics** from the top navigation bar.
|
||||||
From the centralized analytics workspace, the following analytics are available:
|
From the centralized analytics workspace, the following analytics are available:
|
||||||
|
|
||||||
- [Code Review Analytics](code_review_analytics.md), enabled with the `code_review_analytics`
|
- [Code Review Analytics](code_review_analytics.md), enabled with the `code_review_analytics`
|
||||||
[feature flag](../../development/feature_flags/development.html#enabling-a-feature-flag-in-development). **(STARTER)**
|
[feature flag](../../development/feature_flags/development.md#enabling-a-feature-flag-in-development). **(STARTER)**
|
||||||
- [Cycle Analytics](cycle_analytics.md), enabled with the `cycle_analytics`
|
- [Cycle Analytics](cycle_analytics.md), enabled with the `cycle_analytics`
|
||||||
[feature flag](../../development/feature_flags/development.html#enabling-a-feature-flag-in-development). **(PREMIUM)**
|
[feature flag](../../development/feature_flags/development.md#enabling-a-feature-flag-in-development). **(PREMIUM)**
|
||||||
- [Productivity Analytics](productivity_analytics.md), enabled with the `productivity_analytics`
|
- [Productivity Analytics](productivity_analytics.md), enabled with the `productivity_analytics`
|
||||||
[feature flag](../../development/feature_flags/development.html#enabling-a-feature-flag-in-development). **(PREMIUM)**
|
[feature flag](../../development/feature_flags/development.md#enabling-a-feature-flag-in-development). **(PREMIUM)**
|
||||||
|
|
||||||
NOTE: **Note:**
|
NOTE: **Note:**
|
||||||
Project-level Cycle Analytics are still available at a project's **Project > Cycle Analytics**.
|
Project-level Cycle Analytics are still available at a project's **Project > Cycle Analytics**.
|
||||||
|
|
|
@ -53,11 +53,11 @@ Disallow: /*/*/milestones/new
|
||||||
Disallow: /*/*/milestones/*/edit
|
Disallow: /*/*/milestones/*/edit
|
||||||
Disallow: /*/*/issues/new
|
Disallow: /*/*/issues/new
|
||||||
Disallow: /*/*/issues/*/edit
|
Disallow: /*/*/issues/*/edit
|
||||||
Disallow: /*/*/merge_requests/new
|
Disallow: /*/*/-/merge_requests/new
|
||||||
Disallow: /*/*/merge_requests/*.patch
|
Disallow: /*/*/-/merge_requests/*.patch
|
||||||
Disallow: /*/*/merge_requests/*.diff
|
Disallow: /*/*/-/merge_requests/*.diff
|
||||||
Disallow: /*/*/merge_requests/*/edit
|
Disallow: /*/*/-/merge_requests/*/edit
|
||||||
Disallow: /*/*/merge_requests/*/diffs
|
Disallow: /*/*/-/merge_requests/*/diffs
|
||||||
Disallow: /*/*/project_members/import
|
Disallow: /*/*/project_members/import
|
||||||
Disallow: /*/*/labels/new
|
Disallow: /*/*/labels/new
|
||||||
Disallow: /*/*/labels/*/edit
|
Disallow: /*/*/labels/*/edit
|
||||||
|
|
|
@ -8,7 +8,7 @@ export default [
|
||||||
short_commit_sha: 'de7a8f7f',
|
short_commit_sha: 'de7a8f7f',
|
||||||
version_path: '/gnuwget/wget2/merge_requests/6/diffs?diff_id=37',
|
version_path: '/gnuwget/wget2/merge_requests/6/diffs?diff_id=37',
|
||||||
compare_path:
|
compare_path:
|
||||||
'/gnuwget/wget2/merge_requests/6/diffs?diff_id=37&start_sha=de7a8f7f20c3ea2e0bef3ba01cfd41c21f6b4995',
|
'/gnuwget/wget2/-/merge_requests/6/diffs?diff_id=37&start_sha=de7a8f7f20c3ea2e0bef3ba01cfd41c21f6b4995',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
base_version_path: '/gnuwget/wget2/merge_requests/6/diffs?diff_id=36',
|
base_version_path: '/gnuwget/wget2/merge_requests/6/diffs?diff_id=36',
|
||||||
|
@ -19,7 +19,7 @@ export default [
|
||||||
short_commit_sha: 'e78fc18f',
|
short_commit_sha: 'e78fc18f',
|
||||||
version_path: '/gnuwget/wget2/merge_requests/6/diffs?diff_id=36',
|
version_path: '/gnuwget/wget2/merge_requests/6/diffs?diff_id=36',
|
||||||
compare_path:
|
compare_path:
|
||||||
'/gnuwget/wget2/merge_requests/6/diffs?diff_id=37&start_sha=e78fc18fa37acb2185c59ca94d4a964464feb50e',
|
'/gnuwget/wget2/-/merge_requests/6/diffs?diff_id=37&start_sha=e78fc18fa37acb2185c59ca94d4a964464feb50e',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
base_version_path: '/gnuwget/wget2/merge_requests/6/diffs?diff_id=35',
|
base_version_path: '/gnuwget/wget2/merge_requests/6/diffs?diff_id=35',
|
||||||
|
@ -30,7 +30,7 @@ export default [
|
||||||
short_commit_sha: '48da7e7e',
|
short_commit_sha: '48da7e7e',
|
||||||
version_path: '/gnuwget/wget2/merge_requests/6/diffs?diff_id=35',
|
version_path: '/gnuwget/wget2/merge_requests/6/diffs?diff_id=35',
|
||||||
compare_path:
|
compare_path:
|
||||||
'/gnuwget/wget2/merge_requests/6/diffs?diff_id=37&start_sha=48da7e7e9a99d41c852578bd9cb541ca4d864b3e',
|
'/gnuwget/wget2/-/merge_requests/6/diffs?diff_id=37&start_sha=48da7e7e9a99d41c852578bd9cb541ca4d864b3e',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
base_version_path: '/gnuwget/wget2/merge_requests/6/diffs?diff_id=20',
|
base_version_path: '/gnuwget/wget2/merge_requests/6/diffs?diff_id=20',
|
||||||
|
@ -41,6 +41,6 @@ export default [
|
||||||
short_commit_sha: '47bac2ed',
|
short_commit_sha: '47bac2ed',
|
||||||
version_path: '/gnuwget/wget2/merge_requests/6/diffs?diff_id=20',
|
version_path: '/gnuwget/wget2/merge_requests/6/diffs?diff_id=20',
|
||||||
compare_path:
|
compare_path:
|
||||||
'/gnuwget/wget2/merge_requests/6/diffs?diff_id=37&start_sha=47bac2ed972c5bee344c1cea159a22cd7f711dc0',
|
'/gnuwget/wget2/-/merge_requests/6/diffs?diff_id=37&start_sha=47bac2ed972c5bee344c1cea159a22cd7f711dc0',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -52,7 +52,7 @@ export const noteableDataMock = {
|
||||||
time_estimate: 0,
|
time_estimate: 0,
|
||||||
title: '14',
|
title: '14',
|
||||||
total_time_spent: 0,
|
total_time_spent: 0,
|
||||||
noteable_note_url: '/group/project/merge_requests/1#note_1',
|
noteable_note_url: '/group/project/-/merge_requests/1#note_1',
|
||||||
updated_at: '2017-08-04T09:53:01.226Z',
|
updated_at: '2017-08-04T09:53:01.226Z',
|
||||||
updated_by_id: 1,
|
updated_by_id: 1,
|
||||||
web_url: '/gitlab-org/gitlab-foss/issues/26',
|
web_url: '/gitlab-org/gitlab-foss/issues/26',
|
||||||
|
@ -101,8 +101,8 @@ export const individualNote = {
|
||||||
{ name: 'art', user: { id: 1, name: 'Root', username: 'root' } },
|
{ name: 'art', user: { id: 1, name: 'Root', username: 'root' } },
|
||||||
],
|
],
|
||||||
toggle_award_path: '/gitlab-org/gitlab-foss/notes/1390/toggle_award_emoji',
|
toggle_award_path: '/gitlab-org/gitlab-foss/notes/1390/toggle_award_emoji',
|
||||||
noteable_note_url: '/group/project/merge_requests/1#note_1',
|
noteable_note_url: '/group/project/-/merge_requests/1#note_1',
|
||||||
note_url: '/group/project/merge_requests/1#note_1',
|
note_url: '/group/project/-/merge_requests/1#note_1',
|
||||||
report_abuse_path:
|
report_abuse_path:
|
||||||
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1390&user_id=1',
|
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1390&user_id=1',
|
||||||
path: '/gitlab-org/gitlab-foss/notes/1390',
|
path: '/gitlab-org/gitlab-foss/notes/1390',
|
||||||
|
@ -161,8 +161,8 @@ export const note = {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
toggle_award_path: '/gitlab-org/gitlab-foss/notes/546/toggle_award_emoji',
|
toggle_award_path: '/gitlab-org/gitlab-foss/notes/546/toggle_award_emoji',
|
||||||
note_url: '/group/project/merge_requests/1#note_1',
|
note_url: '/group/project/-/merge_requests/1#note_1',
|
||||||
noteable_note_url: '/group/project/merge_requests/1#note_1',
|
noteable_note_url: '/group/project/-/merge_requests/1#note_1',
|
||||||
report_abuse_path:
|
report_abuse_path:
|
||||||
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F7%23note_546&user_id=1',
|
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F7%23note_546&user_id=1',
|
||||||
path: '/gitlab-org/gitlab-foss/notes/546',
|
path: '/gitlab-org/gitlab-foss/notes/546',
|
||||||
|
@ -205,7 +205,7 @@ export const discussionMock = {
|
||||||
discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
|
discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
|
||||||
emoji_awardable: true,
|
emoji_awardable: true,
|
||||||
award_emoji: [],
|
award_emoji: [],
|
||||||
noteable_note_url: '/group/project/merge_requests/1#note_1',
|
noteable_note_url: '/group/project/-/merge_requests/1#note_1',
|
||||||
toggle_award_path: '/gitlab-org/gitlab-foss/notes/1395/toggle_award_emoji',
|
toggle_award_path: '/gitlab-org/gitlab-foss/notes/1395/toggle_award_emoji',
|
||||||
report_abuse_path:
|
report_abuse_path:
|
||||||
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1395&user_id=1',
|
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1395&user_id=1',
|
||||||
|
@ -253,7 +253,7 @@ export const discussionMock = {
|
||||||
emoji_awardable: true,
|
emoji_awardable: true,
|
||||||
award_emoji: [],
|
award_emoji: [],
|
||||||
toggle_award_path: '/gitlab-org/gitlab-foss/notes/1396/toggle_award_emoji',
|
toggle_award_path: '/gitlab-org/gitlab-foss/notes/1396/toggle_award_emoji',
|
||||||
noteable_note_url: '/group/project/merge_requests/1#note_1',
|
noteable_note_url: '/group/project/-/merge_requests/1#note_1',
|
||||||
report_abuse_path:
|
report_abuse_path:
|
||||||
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1396&user_id=1',
|
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1396&user_id=1',
|
||||||
path: '/gitlab-org/gitlab-foss/notes/1396',
|
path: '/gitlab-org/gitlab-foss/notes/1396',
|
||||||
|
@ -299,7 +299,7 @@ export const discussionMock = {
|
||||||
discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
|
discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
|
||||||
emoji_awardable: true,
|
emoji_awardable: true,
|
||||||
award_emoji: [],
|
award_emoji: [],
|
||||||
noteable_note_url: '/group/project/merge_requests/1#note_1',
|
noteable_note_url: '/group/project/-/merge_requests/1#note_1',
|
||||||
toggle_award_path: '/gitlab-org/gitlab-foss/notes/1437/toggle_award_emoji',
|
toggle_award_path: '/gitlab-org/gitlab-foss/notes/1437/toggle_award_emoji',
|
||||||
report_abuse_path:
|
report_abuse_path:
|
||||||
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1437&user_id=1',
|
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1437&user_id=1',
|
||||||
|
@ -349,7 +349,7 @@ export const loggedOutnoteableData = {
|
||||||
can_create_note: false,
|
can_create_note: false,
|
||||||
can_update: false,
|
can_update: false,
|
||||||
},
|
},
|
||||||
noteable_note_url: '/group/project/merge_requests/1#note_1',
|
noteable_note_url: '/group/project/-/merge_requests/1#note_1',
|
||||||
create_note_path: '/gitlab-org/gitlab-foss/notes?target_id=98&target_type=issue',
|
create_note_path: '/gitlab-org/gitlab-foss/notes?target_id=98&target_type=issue',
|
||||||
preview_note_path: '/gitlab-org/gitlab-foss/preview_markdown?target_id=98&target_type=Issue',
|
preview_note_path: '/gitlab-org/gitlab-foss/preview_markdown?target_id=98&target_type=Issue',
|
||||||
};
|
};
|
||||||
|
@ -483,7 +483,7 @@ export const INDIVIDUAL_NOTE_RESPONSE_MAP = {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
noteable_note_url: '/group/project/merge_requests/1#note_1',
|
noteable_note_url: '/group/project/-/merge_requests/1#note_1',
|
||||||
toggle_award_path: '/gitlab-org/gitlab-foss/notes/1390/toggle_award_emoji',
|
toggle_award_path: '/gitlab-org/gitlab-foss/notes/1390/toggle_award_emoji',
|
||||||
report_abuse_path:
|
report_abuse_path:
|
||||||
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1390\u0026user_id=1',
|
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1390\u0026user_id=1',
|
||||||
|
@ -528,7 +528,7 @@ export const INDIVIDUAL_NOTE_RESPONSE_MAP = {
|
||||||
discussion_id: '70d5c92a4039a36c70100c6691c18c27e4b0a790',
|
discussion_id: '70d5c92a4039a36c70100c6691c18c27e4b0a790',
|
||||||
emoji_awardable: true,
|
emoji_awardable: true,
|
||||||
award_emoji: [],
|
award_emoji: [],
|
||||||
noteable_note_url: '/group/project/merge_requests/1#note_1',
|
noteable_note_url: '/group/project/-/merge_requests/1#note_1',
|
||||||
toggle_award_path: '/gitlab-org/gitlab-foss/notes/1391/toggle_award_emoji',
|
toggle_award_path: '/gitlab-org/gitlab-foss/notes/1391/toggle_award_emoji',
|
||||||
report_abuse_path:
|
report_abuse_path:
|
||||||
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1391\u0026user_id=1',
|
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1391\u0026user_id=1',
|
||||||
|
@ -583,7 +583,7 @@ export const INDIVIDUAL_NOTE_RESPONSE_MAP = {
|
||||||
discussion_id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052',
|
discussion_id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052',
|
||||||
emoji_awardable: true,
|
emoji_awardable: true,
|
||||||
award_emoji: [],
|
award_emoji: [],
|
||||||
noteable_note_url: '/group/project/merge_requests/1#note_1',
|
noteable_note_url: '/group/project/-/merge_requests/1#note_1',
|
||||||
toggle_award_path: '/gitlab-org/gitlab-foss/notes/1471/toggle_award_emoji',
|
toggle_award_path: '/gitlab-org/gitlab-foss/notes/1471/toggle_award_emoji',
|
||||||
report_abuse_path:
|
report_abuse_path:
|
||||||
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F29%23note_1471\u0026user_id=1',
|
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F29%23note_1471\u0026user_id=1',
|
||||||
|
@ -635,7 +635,7 @@ export const DISCUSSION_NOTE_RESPONSE_MAP = {
|
||||||
emoji_awardable: true,
|
emoji_awardable: true,
|
||||||
award_emoji: [],
|
award_emoji: [],
|
||||||
toggle_award_path: '/gitlab-org/gitlab-foss/notes/1471/toggle_award_emoji',
|
toggle_award_path: '/gitlab-org/gitlab-foss/notes/1471/toggle_award_emoji',
|
||||||
noteable_note_url: '/group/project/merge_requests/1#note_1',
|
noteable_note_url: '/group/project/-/merge_requests/1#note_1',
|
||||||
report_abuse_path:
|
report_abuse_path:
|
||||||
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F29%23note_1471\u0026user_id=1',
|
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F29%23note_1471\u0026user_id=1',
|
||||||
path: '/gitlab-org/gitlab-foss/notes/1471',
|
path: '/gitlab-org/gitlab-foss/notes/1471',
|
||||||
|
|
|
@ -5,7 +5,7 @@ describe('request selector', () => {
|
||||||
const requests = [
|
const requests = [
|
||||||
{
|
{
|
||||||
id: 'warningReq',
|
id: 'warningReq',
|
||||||
url: 'https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/1/discussions.json',
|
url: 'https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/1/discussions.json',
|
||||||
truncatedUrl: 'discussions.json',
|
truncatedUrl: 'discussions.json',
|
||||||
hasWarnings: true,
|
hasWarnings: true,
|
||||||
},
|
},
|
||||||
|
|
|
@ -15,14 +15,14 @@ describe('PerformanceBarStore', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('keeps the last two components of the path when the last component is numeric', () => {
|
it('keeps the last two components of the path when the last component is numeric', () => {
|
||||||
store.addRequest('id', 'https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/1');
|
store.addRequest('id', 'https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/1');
|
||||||
expect(findUrl('id')).toEqual('merge_requests/1');
|
expect(findUrl('id')).toEqual('merge_requests/1');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('uses the last component of the path', () => {
|
it('uses the last component of the path', () => {
|
||||||
store.addRequest(
|
store.addRequest(
|
||||||
'id',
|
'id',
|
||||||
'https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/1.json?serializer=widget',
|
'https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/1.json?serializer=widget',
|
||||||
);
|
);
|
||||||
expect(findUrl('id')).toEqual('1.json?serializer=widget');
|
expect(findUrl('id')).toEqual('1.json?serializer=widget');
|
||||||
});
|
});
|
||||||
|
|
|
@ -51,7 +51,7 @@ describe AwardEmojiHelper do
|
||||||
it 'returns correct url' do
|
it 'returns correct url' do
|
||||||
@project = merge_request.project
|
@project = merge_request.project
|
||||||
|
|
||||||
expected_url = "/#{@project.namespace.path}/#{@project.path}/merge_requests/#{merge_request.iid}/toggle_award_emoji"
|
expected_url = "/#{@project.namespace.path}/#{@project.path}/-/merge_requests/#{merge_request.iid}/toggle_award_emoji"
|
||||||
|
|
||||||
expect(subject).to eq(expected_url)
|
expect(subject).to eq(expected_url)
|
||||||
end
|
end
|
||||||
|
|
|
@ -116,7 +116,7 @@ describe EventsHelper do
|
||||||
it 'returns a merge request url' do
|
it 'returns a merge request url' do
|
||||||
event.target = create(:note_on_merge_request, note: 'LGTM!')
|
event.target = create(:note_on_merge_request, note: 'LGTM!')
|
||||||
|
|
||||||
expect(subject).to eq("#{project_base_url}/merge_requests/#{event.note_target.iid}#note_#{event.target.id}")
|
expect(subject).to eq("#{project_base_url}/-/merge_requests/#{event.note_target.iid}#note_#{event.target.id}")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -78,13 +78,21 @@ describe LabelsHelper do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with a type argument' do
|
context 'with a type argument' do
|
||||||
['issue', :issue, 'merge_request', :merge_request].each do |type|
|
['issue', :issue].each do |type|
|
||||||
context "set to #{type}" do
|
context "set to #{type}" do
|
||||||
it 'links to correct page' do
|
it 'links to correct page' do
|
||||||
expect(link_to_label(label_presenter, type: type)).to match %r{<a href="/#{label.project.full_path}/#{type.to_s.pluralize}\?label_name%5B%5D=#{label.name}">.*</a>}
|
expect(link_to_label(label_presenter, type: type)).to match %r{<a href="/#{label.project.full_path}/#{type.to_s.pluralize}\?label_name%5B%5D=#{label.name}">.*</a>}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
['merge_request', :merge_request].each do |type|
|
||||||
|
context "set to #{type}" do
|
||||||
|
it 'links to correct page' do
|
||||||
|
expect(link_to_label(label_presenter, type: type)).to match %r{<a href="/#{label.project.full_path}/-/#{type.to_s.pluralize}\?label_name%5B%5D=#{label.name}">.*</a>}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with a tooltip argument' do
|
context 'with a tooltip argument' do
|
||||||
|
|
|
@ -9,7 +9,7 @@ const startVersion = { version_index: 4 };
|
||||||
const mergeRequestVersion = {
|
const mergeRequestVersion = {
|
||||||
version_path: '123',
|
version_path: '123',
|
||||||
};
|
};
|
||||||
const baseVersionPath = '/gnuwget/wget2/merge_requests/6/diffs?diff_id=37';
|
const baseVersionPath = '/gnuwget/wget2/-/merge_requests/6/diffs?diff_id=37';
|
||||||
|
|
||||||
describe('CompareVersionsDropdown', () => {
|
describe('CompareVersionsDropdown', () => {
|
||||||
let wrapper;
|
let wrapper;
|
||||||
|
|
|
@ -59,9 +59,10 @@ export default {
|
||||||
report_abuse_path:
|
report_abuse_path:
|
||||||
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-test%2Fmerge_requests%2F20%23note_1749&user_id=1',
|
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-test%2Fmerge_requests%2F20%23note_1749&user_id=1',
|
||||||
path: '/gitlab-org/gitlab-test/notes/1749',
|
path: '/gitlab-org/gitlab-test/notes/1749',
|
||||||
noteable_note_url: 'http://localhost:3000/gitlab-org/gitlab-test/merge_requests/20#note_1749',
|
noteable_note_url:
|
||||||
|
'http://localhost:3000/gitlab-org/gitlab-test/-/merge_requests/20#note_1749',
|
||||||
resolve_path:
|
resolve_path:
|
||||||
'/gitlab-org/gitlab-test/merge_requests/20/discussions/6b232e05bea388c6b043ccc243ba505faac04ea8/resolve',
|
'/gitlab-org/gitlab-test/-/merge_requests/20/discussions/6b232e05bea388c6b043ccc243ba505faac04ea8/resolve',
|
||||||
resolve_with_issue_path:
|
resolve_with_issue_path:
|
||||||
'/gitlab-org/gitlab-test/issues/new?discussion_to_resolve=6b232e05bea388c6b043ccc243ba505faac04ea8&merge_request_to_resolve_discussions_of=20',
|
'/gitlab-org/gitlab-test/issues/new?discussion_to_resolve=6b232e05bea388c6b043ccc243ba505faac04ea8&merge_request_to_resolve_discussions_of=20',
|
||||||
},
|
},
|
||||||
|
@ -111,9 +112,10 @@ export default {
|
||||||
report_abuse_path:
|
report_abuse_path:
|
||||||
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-test%2Fmerge_requests%2F20%23note_1753&user_id=1',
|
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-test%2Fmerge_requests%2F20%23note_1753&user_id=1',
|
||||||
path: '/gitlab-org/gitlab-test/notes/1753',
|
path: '/gitlab-org/gitlab-test/notes/1753',
|
||||||
noteable_note_url: 'http://localhost:3000/gitlab-org/gitlab-test/merge_requests/20#note_1753',
|
noteable_note_url:
|
||||||
|
'http://localhost:3000/gitlab-org/gitlab-test/-/merge_requests/20#note_1753',
|
||||||
resolve_path:
|
resolve_path:
|
||||||
'/gitlab-org/gitlab-test/merge_requests/20/discussions/6b232e05bea388c6b043ccc243ba505faac04ea8/resolve',
|
'/gitlab-org/gitlab-test/-/merge_requests/20/discussions/6b232e05bea388c6b043ccc243ba505faac04ea8/resolve',
|
||||||
resolve_with_issue_path:
|
resolve_with_issue_path:
|
||||||
'/gitlab-org/gitlab-test/issues/new?discussion_to_resolve=6b232e05bea388c6b043ccc243ba505faac04ea8&merge_request_to_resolve_discussions_of=20',
|
'/gitlab-org/gitlab-test/issues/new?discussion_to_resolve=6b232e05bea388c6b043ccc243ba505faac04ea8&merge_request_to_resolve_discussions_of=20',
|
||||||
},
|
},
|
||||||
|
@ -153,9 +155,10 @@ export default {
|
||||||
report_abuse_path:
|
report_abuse_path:
|
||||||
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-test%2Fmerge_requests%2F20%23note_1754&user_id=1',
|
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-test%2Fmerge_requests%2F20%23note_1754&user_id=1',
|
||||||
path: '/gitlab-org/gitlab-test/notes/1754',
|
path: '/gitlab-org/gitlab-test/notes/1754',
|
||||||
noteable_note_url: 'http://localhost:3000/gitlab-org/gitlab-test/merge_requests/20#note_1754',
|
noteable_note_url:
|
||||||
|
'http://localhost:3000/gitlab-org/gitlab-test/-/merge_requests/20#note_1754',
|
||||||
resolve_path:
|
resolve_path:
|
||||||
'/gitlab-org/gitlab-test/merge_requests/20/discussions/6b232e05bea388c6b043ccc243ba505faac04ea8/resolve',
|
'/gitlab-org/gitlab-test/-/merge_requests/20/discussions/6b232e05bea388c6b043ccc243ba505faac04ea8/resolve',
|
||||||
resolve_with_issue_path:
|
resolve_with_issue_path:
|
||||||
'/gitlab-org/gitlab-test/issues/new?discussion_to_resolve=6b232e05bea388c6b043ccc243ba505faac04ea8&merge_request_to_resolve_discussions_of=20',
|
'/gitlab-org/gitlab-test/issues/new?discussion_to_resolve=6b232e05bea388c6b043ccc243ba505faac04ea8&merge_request_to_resolve_discussions_of=20',
|
||||||
},
|
},
|
||||||
|
@ -195,9 +198,10 @@ export default {
|
||||||
report_abuse_path:
|
report_abuse_path:
|
||||||
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-test%2Fmerge_requests%2F20%23note_1755&user_id=1',
|
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-test%2Fmerge_requests%2F20%23note_1755&user_id=1',
|
||||||
path: '/gitlab-org/gitlab-test/notes/1755',
|
path: '/gitlab-org/gitlab-test/notes/1755',
|
||||||
noteable_note_url: 'http://localhost:3000/gitlab-org/gitlab-test/merge_requests/20#note_1755',
|
noteable_note_url:
|
||||||
|
'http://localhost:3000/gitlab-org/gitlab-test/-/merge_requests/20#note_1755',
|
||||||
resolve_path:
|
resolve_path:
|
||||||
'/gitlab-org/gitlab-test/merge_requests/20/discussions/6b232e05bea388c6b043ccc243ba505faac04ea8/resolve',
|
'/gitlab-org/gitlab-test/-/merge_requests/20/discussions/6b232e05bea388c6b043ccc243ba505faac04ea8/resolve',
|
||||||
resolve_with_issue_path:
|
resolve_with_issue_path:
|
||||||
'/gitlab-org/gitlab-test/issues/new?discussion_to_resolve=6b232e05bea388c6b043ccc243ba505faac04ea8&merge_request_to_resolve_discussions_of=20',
|
'/gitlab-org/gitlab-test/issues/new?discussion_to_resolve=6b232e05bea388c6b043ccc243ba505faac04ea8&merge_request_to_resolve_discussions_of=20',
|
||||||
},
|
},
|
||||||
|
@ -237,9 +241,10 @@ export default {
|
||||||
report_abuse_path:
|
report_abuse_path:
|
||||||
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-test%2Fmerge_requests%2F20%23note_1756&user_id=1',
|
'/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-test%2Fmerge_requests%2F20%23note_1756&user_id=1',
|
||||||
path: '/gitlab-org/gitlab-test/notes/1756',
|
path: '/gitlab-org/gitlab-test/notes/1756',
|
||||||
noteable_note_url: 'http://localhost:3000/gitlab-org/gitlab-test/merge_requests/20#note_1756',
|
noteable_note_url:
|
||||||
|
'http://localhost:3000/gitlab-org/gitlab-test/-/merge_requests/20#note_1756',
|
||||||
resolve_path:
|
resolve_path:
|
||||||
'/gitlab-org/gitlab-test/merge_requests/20/discussions/6b232e05bea388c6b043ccc243ba505faac04ea8/resolve',
|
'/gitlab-org/gitlab-test/-/merge_requests/20/discussions/6b232e05bea388c6b043ccc243ba505faac04ea8/resolve',
|
||||||
resolve_with_issue_path:
|
resolve_with_issue_path:
|
||||||
'/gitlab-org/gitlab-test/issues/new?discussion_to_resolve=6b232e05bea388c6b043ccc243ba505faac04ea8&merge_request_to_resolve_discussions_of=20',
|
'/gitlab-org/gitlab-test/issues/new?discussion_to_resolve=6b232e05bea388c6b043ccc243ba505faac04ea8&merge_request_to_resolve_discussions_of=20',
|
||||||
},
|
},
|
||||||
|
@ -248,7 +253,7 @@ export default {
|
||||||
resolvable: true,
|
resolvable: true,
|
||||||
resolved: false,
|
resolved: false,
|
||||||
resolve_path:
|
resolve_path:
|
||||||
'/gitlab-org/gitlab-test/merge_requests/20/discussions/6b232e05bea388c6b043ccc243ba505faac04ea8/resolve',
|
'/gitlab-org/gitlab-test/-/merge_requests/20/discussions/6b232e05bea388c6b043ccc243ba505faac04ea8/resolve',
|
||||||
resolve_with_issue_path:
|
resolve_with_issue_path:
|
||||||
'/gitlab-org/gitlab-test/issues/new?discussion_to_resolve=6b232e05bea388c6b043ccc243ba505faac04ea8&merge_request_to_resolve_discussions_of=20',
|
'/gitlab-org/gitlab-test/issues/new?discussion_to_resolve=6b232e05bea388c6b043ccc243ba505faac04ea8&merge_request_to_resolve_discussions_of=20',
|
||||||
diff_file: {
|
diff_file: {
|
||||||
|
|
|
@ -461,7 +461,7 @@ describe('IDE commit module actions', () => {
|
||||||
.dispatch('commit/commitChanges')
|
.dispatch('commit/commitChanges')
|
||||||
.then(() => {
|
.then(() => {
|
||||||
expect(visitUrl).toHaveBeenCalledWith(
|
expect(visitUrl).toHaveBeenCalledWith(
|
||||||
`webUrl/merge_requests/new?merge_request[source_branch]=${
|
`webUrl/-/merge_requests/new?merge_request[source_branch]=${
|
||||||
store.getters['commit/placeholderBranchName']
|
store.getters['commit/placeholderBranchName']
|
||||||
}&merge_request[target_branch]=master&nav_source=webide`,
|
}&merge_request[target_branch]=master&nav_source=webide`,
|
||||||
);
|
);
|
||||||
|
|
|
@ -27,7 +27,7 @@ describe('Stages Dropdown', () => {
|
||||||
},
|
},
|
||||||
merge_request: {
|
merge_request: {
|
||||||
iid: 1234,
|
iid: 1234,
|
||||||
path: '/root/detached-merge-request-pipelines/merge_requests/1',
|
path: '/root/detached-merge-request-pipelines/-/merge_requests/1',
|
||||||
title: 'Update README.md',
|
title: 'Update README.md',
|
||||||
source_branch: 'feature-1234',
|
source_branch: 'feature-1234',
|
||||||
source_branch_path: '/root/detached-merge-request-pipelines/branches/feature-1234',
|
source_branch_path: '/root/detached-merge-request-pipelines/branches/feature-1234',
|
||||||
|
|
|
@ -17,7 +17,7 @@ describe('MergeRequest', function() {
|
||||||
mock = new MockAdapter(axios);
|
mock = new MockAdapter(axios);
|
||||||
|
|
||||||
mock
|
mock
|
||||||
.onPatch(`${gl.TEST_HOST}/frontend-fixtures/merge-requests-project/merge_requests/1.json`)
|
.onPatch(`${gl.TEST_HOST}/frontend-fixtures/merge-requests-project/-/merge_requests/1.json`)
|
||||||
.reply(200, {});
|
.reply(200, {});
|
||||||
|
|
||||||
this.merge = new MergeRequest();
|
this.merge = new MergeRequest();
|
||||||
|
@ -75,7 +75,7 @@ describe('MergeRequest', function() {
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
expect(axios.patch).toHaveBeenCalledWith(
|
expect(axios.patch).toHaveBeenCalledWith(
|
||||||
`${gl.TEST_HOST}/frontend-fixtures/merge-requests-project/merge_requests/1.json`,
|
`${gl.TEST_HOST}/frontend-fixtures/merge-requests-project/-/merge_requests/1.json`,
|
||||||
{
|
{
|
||||||
merge_request: {
|
merge_request: {
|
||||||
description: '- [ ] Task List Item\n- [ ] \n- [ ] Task List Item 2\n',
|
description: '- [ ] Task List Item\n- [ ] \n- [ ] Task List Item 2\n',
|
||||||
|
@ -93,7 +93,9 @@ describe('MergeRequest', function() {
|
||||||
// eslint-disable-next-line jasmine/no-disabled-tests
|
// eslint-disable-next-line jasmine/no-disabled-tests
|
||||||
xit('shows an error notification when tasklist update failed', done => {
|
xit('shows an error notification when tasklist update failed', done => {
|
||||||
mock
|
mock
|
||||||
.onPatch(`${gl.TEST_HOST}/frontend-fixtures/merge-requests-project/merge_requests/1.json`)
|
.onPatch(
|
||||||
|
`${gl.TEST_HOST}/frontend-fixtures/merge-requests-project/-/merge_requests/1.json`,
|
||||||
|
)
|
||||||
.reply(409, {});
|
.reply(409, {});
|
||||||
|
|
||||||
$('.js-task-list-field').trigger({
|
$('.js-task-list-field').trigger({
|
||||||
|
|
|
@ -146,53 +146,53 @@ describe('MergeRequestTabs', function() {
|
||||||
|
|
||||||
it('changes from commits', function() {
|
it('changes from commits', function() {
|
||||||
setLocation({
|
setLocation({
|
||||||
pathname: '/foo/bar/merge_requests/1/commits',
|
pathname: '/foo/bar/-/merge_requests/1/commits',
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(this.subject('show')).toBe('/foo/bar/merge_requests/1');
|
expect(this.subject('show')).toBe('/foo/bar/-/merge_requests/1');
|
||||||
expect(this.subject('diffs')).toBe('/foo/bar/merge_requests/1/diffs');
|
expect(this.subject('diffs')).toBe('/foo/bar/-/merge_requests/1/diffs');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('changes from diffs', function() {
|
it('changes from diffs', function() {
|
||||||
setLocation({
|
setLocation({
|
||||||
pathname: '/foo/bar/merge_requests/1/diffs',
|
pathname: '/foo/bar/-/merge_requests/1/diffs',
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(this.subject('show')).toBe('/foo/bar/merge_requests/1');
|
expect(this.subject('show')).toBe('/foo/bar/-/merge_requests/1');
|
||||||
expect(this.subject('commits')).toBe('/foo/bar/merge_requests/1/commits');
|
expect(this.subject('commits')).toBe('/foo/bar/-/merge_requests/1/commits');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('changes from diffs.html', function() {
|
it('changes from diffs.html', function() {
|
||||||
setLocation({
|
setLocation({
|
||||||
pathname: '/foo/bar/merge_requests/1/diffs.html',
|
pathname: '/foo/bar/-/merge_requests/1/diffs.html',
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(this.subject('show')).toBe('/foo/bar/merge_requests/1');
|
expect(this.subject('show')).toBe('/foo/bar/-/merge_requests/1');
|
||||||
expect(this.subject('commits')).toBe('/foo/bar/merge_requests/1/commits');
|
expect(this.subject('commits')).toBe('/foo/bar/-/merge_requests/1/commits');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('changes from notes', function() {
|
it('changes from notes', function() {
|
||||||
setLocation({
|
setLocation({
|
||||||
pathname: '/foo/bar/merge_requests/1',
|
pathname: '/foo/bar/-/merge_requests/1',
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(this.subject('diffs')).toBe('/foo/bar/merge_requests/1/diffs');
|
expect(this.subject('diffs')).toBe('/foo/bar/-/merge_requests/1/diffs');
|
||||||
expect(this.subject('commits')).toBe('/foo/bar/merge_requests/1/commits');
|
expect(this.subject('commits')).toBe('/foo/bar/-/merge_requests/1/commits');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('includes search parameters and hash string', function() {
|
it('includes search parameters and hash string', function() {
|
||||||
setLocation({
|
setLocation({
|
||||||
pathname: '/foo/bar/merge_requests/1/diffs',
|
pathname: '/foo/bar/-/merge_requests/1/diffs',
|
||||||
search: '?view=parallel',
|
search: '?view=parallel',
|
||||||
hash: '#L15-35',
|
hash: '#L15-35',
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(this.subject('show')).toBe('/foo/bar/merge_requests/1?view=parallel#L15-35');
|
expect(this.subject('show')).toBe('/foo/bar/-/merge_requests/1?view=parallel#L15-35');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('replaces the current history state', function() {
|
it('replaces the current history state', function() {
|
||||||
setLocation({
|
setLocation({
|
||||||
pathname: '/foo/bar/merge_requests/1',
|
pathname: '/foo/bar/-/merge_requests/1',
|
||||||
});
|
});
|
||||||
const newState = this.subject('commits');
|
const newState = this.subject('commits');
|
||||||
|
|
||||||
|
@ -207,10 +207,10 @@ describe('MergeRequestTabs', function() {
|
||||||
|
|
||||||
it('treats "show" like "notes"', function() {
|
it('treats "show" like "notes"', function() {
|
||||||
setLocation({
|
setLocation({
|
||||||
pathname: '/foo/bar/merge_requests/1/commits',
|
pathname: '/foo/bar/-/merge_requests/1/commits',
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(this.subject('show')).toBe('/foo/bar/merge_requests/1');
|
expect(this.subject('show')).toBe('/foo/bar/-/merge_requests/1');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ describe('noteActions', () => {
|
||||||
canAwardEmoji: true,
|
canAwardEmoji: true,
|
||||||
canReportAsAbuse: true,
|
canReportAsAbuse: true,
|
||||||
noteId: '539',
|
noteId: '539',
|
||||||
noteUrl: `${TEST_HOST}/group/project/merge_requests/1#note_1`,
|
noteUrl: `${TEST_HOST}/group/project/-/merge_requests/1#note_1`,
|
||||||
reportAbusePath: `${TEST_HOST}/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F7%23note_539&user_id=26`,
|
reportAbusePath: `${TEST_HOST}/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F7%23note_539&user_id=26`,
|
||||||
showReply: false,
|
showReply: false,
|
||||||
};
|
};
|
||||||
|
|
|
@ -18,11 +18,11 @@ describe('Search autocomplete dropdown', () => {
|
||||||
|
|
||||||
const projectIssuesPath = '/gitlab-org/gitlab-foss/issues';
|
const projectIssuesPath = '/gitlab-org/gitlab-foss/issues';
|
||||||
|
|
||||||
const projectMRsPath = '/gitlab-org/gitlab-foss/merge_requests';
|
const projectMRsPath = '/gitlab-org/gitlab-foss/-/merge_requests';
|
||||||
|
|
||||||
const groupIssuesPath = '/groups/gitlab-org/issues';
|
const groupIssuesPath = '/groups/gitlab-org/-/issues';
|
||||||
|
|
||||||
const groupMRsPath = '/groups/gitlab-org/merge_requests';
|
const groupMRsPath = '/groups/gitlab-org/-/merge_requests';
|
||||||
|
|
||||||
const projectName = 'GitLab Community Edition';
|
const projectName = 'GitLab Community Edition';
|
||||||
|
|
||||||
|
|
|
@ -146,7 +146,7 @@ export default {
|
||||||
},
|
},
|
||||||
merge_request: {
|
merge_request: {
|
||||||
iid: 1,
|
iid: 1,
|
||||||
path: '/root/detached-merge-request-pipelines/merge_requests/1',
|
path: '/root/detached-merge-request-pipelines/-/merge_requests/1',
|
||||||
title: 'Update README.md',
|
title: 'Update README.md',
|
||||||
source_branch: 'feature-1',
|
source_branch: 'feature-1',
|
||||||
source_branch_path: '/root/detached-merge-request-pipelines/branches/feature-1',
|
source_branch_path: '/root/detached-merge-request-pipelines/branches/feature-1',
|
||||||
|
@ -196,7 +196,7 @@ export default {
|
||||||
can_be_merged: true,
|
can_be_merged: true,
|
||||||
has_ci: true,
|
has_ci: true,
|
||||||
ci_status: 'success',
|
ci_status: 'success',
|
||||||
pipeline_status_path: '/root/acets-app/merge_requests/22/pipeline_status',
|
pipeline_status_path: '/root/acets-app/-/merge_requests/22/pipeline_status',
|
||||||
issues_links: {
|
issues_links: {
|
||||||
closing: '',
|
closing: '',
|
||||||
mentioned_but_not_closing: '',
|
mentioned_but_not_closing: '',
|
||||||
|
@ -209,30 +209,30 @@ export default {
|
||||||
},
|
},
|
||||||
target_branch_path: '/root/acets-app/branches/master',
|
target_branch_path: '/root/acets-app/branches/master',
|
||||||
source_branch_path: '/root/acets-app/branches/daaaa',
|
source_branch_path: '/root/acets-app/branches/daaaa',
|
||||||
conflict_resolution_ui_path: '/root/acets-app/merge_requests/22/conflicts',
|
conflict_resolution_ui_path: '/root/acets-app/-/merge_requests/22/conflicts',
|
||||||
remove_wip_path: '/root/acets-app/merge_requests/22/remove_wip',
|
remove_wip_path: '/root/acets-app/-/merge_requests/22/remove_wip',
|
||||||
cancel_auto_merge_path: '/root/acets-app/merge_requests/22/cancel_auto_merge',
|
cancel_auto_merge_path: '/root/acets-app/-/merge_requests/22/cancel_auto_merge',
|
||||||
create_issue_to_resolve_discussions_path:
|
create_issue_to_resolve_discussions_path:
|
||||||
'/root/acets-app/issues/new?merge_request_to_resolve_discussions_of=22',
|
'/root/acets-app/issues/new?merge_request_to_resolve_discussions_of=22',
|
||||||
merge_path: '/root/acets-app/merge_requests/22/merge',
|
merge_path: '/root/acets-app/-/merge_requests/22/merge',
|
||||||
cherry_pick_in_fork_path:
|
cherry_pick_in_fork_path:
|
||||||
'/root/acets-app/forks?continue%5Bnotice%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+has+been+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.+Try+to+revert+this+commit+again.&continue%5Bnotice_now%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+is+being+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.&continue%5Bto%5D=%2Froot%2Facets-app%2Fmerge_requests%2F22&namespace_key=1',
|
'/root/acets-app/forks?continue%5Bnotice%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+has+been+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.+Try+to+revert+this+commit+again.&continue%5Bnotice_now%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+is+being+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.&continue%5Bto%5D=%2Froot%2Facets-app%2Fmerge_requests%2F22&namespace_key=1',
|
||||||
revert_in_fork_path:
|
revert_in_fork_path:
|
||||||
'/root/acets-app/forks?continue%5Bnotice%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+has+been+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.+Try+to+cherry-pick+this+commit+again.&continue%5Bnotice_now%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+is+being+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.&continue%5Bto%5D=%2Froot%2Facets-app%2Fmerge_requests%2F22&namespace_key=1',
|
'/root/acets-app/forks?continue%5Bnotice%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+has+been+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.+Try+to+cherry-pick+this+commit+again.&continue%5Bnotice_now%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+is+being+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.&continue%5Bto%5D=%2Froot%2Facets-app%2Fmerge_requests%2F22&namespace_key=1',
|
||||||
email_patches_path: '/root/acets-app/merge_requests/22.patch',
|
email_patches_path: '/root/acets-app/-/merge_requests/22.patch',
|
||||||
plain_diff_path: '/root/acets-app/merge_requests/22.diff',
|
plain_diff_path: '/root/acets-app/-/merge_requests/22.diff',
|
||||||
merge_request_basic_path: '/root/acets-app/merge_requests/22.json?serializer=basic',
|
merge_request_basic_path: '/root/acets-app/-/merge_requests/22.json?serializer=basic',
|
||||||
merge_request_widget_path: '/root/acets-app/merge_requests/22/widget.json',
|
merge_request_widget_path: '/root/acets-app/-/merge_requests/22/widget.json',
|
||||||
merge_request_cached_widget_path: '/cached.json',
|
merge_request_cached_widget_path: '/cached.json',
|
||||||
merge_check_path: '/root/acets-app/merge_requests/22/merge_check',
|
merge_check_path: '/root/acets-app/-/merge_requests/22/merge_check',
|
||||||
ci_environments_status_url: '/root/acets-app/merge_requests/22/ci_environments_status',
|
ci_environments_status_url: '/root/acets-app/-/merge_requests/22/ci_environments_status',
|
||||||
project_archived: false,
|
project_archived: false,
|
||||||
default_merge_commit_message_with_description:
|
default_merge_commit_message_with_description:
|
||||||
"Merge branch 'daaaa' into 'master'\n\nUpdate README.md\n\nSee merge request !22",
|
"Merge branch 'daaaa' into 'master'\n\nUpdate README.md\n\nSee merge request !22",
|
||||||
default_squash_commit_message: 'Test squash commit message',
|
default_squash_commit_message: 'Test squash commit message',
|
||||||
diverged_commits_count: 0,
|
diverged_commits_count: 0,
|
||||||
only_allow_merge_if_pipeline_succeeds: false,
|
only_allow_merge_if_pipeline_succeeds: false,
|
||||||
commit_change_content_path: '/root/acets-app/merge_requests/22/commit_change_content',
|
commit_change_content_path: '/root/acets-app/-/merge_requests/22/commit_change_content',
|
||||||
merge_commit_path:
|
merge_commit_path:
|
||||||
'http://localhost:3000/root/acets-app/commit/53027d060246c8f47e4a9310fb332aa52f221775',
|
'http://localhost:3000/root/acets-app/commit/53027d060246c8f47e4a9310fb332aa52f221775',
|
||||||
troubleshooting_docs_path: 'help',
|
troubleshooting_docs_path: 'help',
|
||||||
|
|
|
@ -156,7 +156,7 @@ describe Banzai::Filter::RepositoryLinkFilter do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'does not modify relative URLs in system notes' do
|
it 'does not modify relative URLs in system notes' do
|
||||||
path = "#{project_path}/merge_requests/1/diffs"
|
path = "#{project_path}/-/merge_requests/1/diffs"
|
||||||
doc = filter(link(path), system_note: true)
|
doc = filter(link(path), system_note: true)
|
||||||
|
|
||||||
expect(doc.at_css('a')['href']).to eq path
|
expect(doc.at_css('a')['href']).to eq path
|
||||||
|
|
|
@ -335,14 +335,14 @@ describe Gitlab::Danger::Helper do
|
||||||
|
|
||||||
it 'returns false when on a normal merge request' do
|
it 'returns false when on a normal merge request' do
|
||||||
expect(fake_gitlab).to receive(:mr_json)
|
expect(fake_gitlab).to receive(:mr_json)
|
||||||
.and_return('web_url' => 'https://gitlab.com/gitlab-org/gitlab/merge_requests/1')
|
.and_return('web_url' => 'https://gitlab.com/gitlab-org/gitlab/-/merge_requests/1')
|
||||||
|
|
||||||
expect(helper).not_to be_security_mr
|
expect(helper).not_to be_security_mr
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns true when on a security merge request' do
|
it 'returns true when on a security merge request' do
|
||||||
expect(fake_gitlab).to receive(:mr_json)
|
expect(fake_gitlab).to receive(:mr_json)
|
||||||
.and_return('web_url' => 'https://gitlab.com/gitlab-org/security/gitlab/merge_requests/1')
|
.and_return('web_url' => 'https://gitlab.com/gitlab-org/security/gitlab/-/merge_requests/1')
|
||||||
|
|
||||||
expect(helper).to be_security_mr
|
expect(helper).to be_security_mr
|
||||||
end
|
end
|
||||||
|
|
|
@ -77,7 +77,7 @@ describe Gitlab::DataBuilder::Pipeline do
|
||||||
expect(merge_request_attrs[:target_project_id]).to eq(merge_request.target_project_id)
|
expect(merge_request_attrs[:target_project_id]).to eq(merge_request.target_project_id)
|
||||||
expect(merge_request_attrs[:state]).to eq(merge_request.state)
|
expect(merge_request_attrs[:state]).to eq(merge_request.state)
|
||||||
expect(merge_request_attrs[:merge_status]).to eq(merge_request.merge_status)
|
expect(merge_request_attrs[:merge_status]).to eq(merge_request.merge_status)
|
||||||
expect(merge_request_attrs[:url]).to eq("http://localhost/#{merge_request.target_project.full_path}/merge_requests/#{merge_request.iid}")
|
expect(merge_request_attrs[:url]).to eq("http://localhost/#{merge_request.target_project.full_path}/-/merge_requests/#{merge_request.iid}")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -68,7 +68,7 @@ describe Gitlab::EtagCaching::Router do
|
||||||
|
|
||||||
it 'matches new merge request pipelines endpoint' do
|
it 'matches new merge request pipelines endpoint' do
|
||||||
result = described_class.match(
|
result = described_class.match(
|
||||||
'/my-group/my-project/merge_requests/new.json'
|
'/my-group/my-project/-/merge_requests/new.json'
|
||||||
)
|
)
|
||||||
|
|
||||||
expect(result).to be_present
|
expect(result).to be_present
|
||||||
|
@ -77,7 +77,7 @@ describe Gitlab::EtagCaching::Router do
|
||||||
|
|
||||||
it 'matches merge request pipelines endpoint' do
|
it 'matches merge request pipelines endpoint' do
|
||||||
result = described_class.match(
|
result = described_class.match(
|
||||||
'/my-group/my-project/merge_requests/234/pipelines.json'
|
'/my-group/my-project/-/merge_requests/234/pipelines.json'
|
||||||
)
|
)
|
||||||
|
|
||||||
expect(result).to be_present
|
expect(result).to be_present
|
||||||
|
|
|
@ -9,8 +9,8 @@ describe Gitlab::InternalPostReceive::Response do
|
||||||
context 'when there are urls_data' do
|
context 'when there are urls_data' do
|
||||||
it 'adds a message for each merge request URL' do
|
it 'adds a message for each merge request URL' do
|
||||||
urls_data = [
|
urls_data = [
|
||||||
{ new_merge_request: false, branch_name: 'foo', url: 'http://example.com/foo/bar/merge_requests/1' },
|
{ new_merge_request: false, branch_name: 'foo', url: 'http://example.com/foo/bar/-/merge_requests/1' },
|
||||||
{ new_merge_request: true, branch_name: 'bar', url: 'http://example.com/foo/bar/merge_requests/new?merge_request%5Bsource_branch%5D=bar' }
|
{ new_merge_request: true, branch_name: 'bar', url: 'http://example.com/foo/bar/-/merge_requests/new?merge_request%5Bsource_branch%5D=bar' }
|
||||||
]
|
]
|
||||||
|
|
||||||
subject.add_merge_request_urls(urls_data)
|
subject.add_merge_request_urls(urls_data)
|
||||||
|
@ -24,13 +24,13 @@ describe Gitlab::InternalPostReceive::Response do
|
||||||
describe '#add_merge_request_url' do
|
describe '#add_merge_request_url' do
|
||||||
context 'when :new_merge_request is false' do
|
context 'when :new_merge_request is false' do
|
||||||
it 'adds a basic message to view the existing merge request' do
|
it 'adds a basic message to view the existing merge request' do
|
||||||
url_data = { new_merge_request: false, branch_name: 'foo', url: 'http://example.com/foo/bar/merge_requests/1' }
|
url_data = { new_merge_request: false, branch_name: 'foo', url: 'http://example.com/foo/bar/-/merge_requests/1' }
|
||||||
|
|
||||||
subject.add_merge_request_url(url_data)
|
subject.add_merge_request_url(url_data)
|
||||||
|
|
||||||
message = <<~MESSAGE.strip
|
message = <<~MESSAGE.strip
|
||||||
View merge request for foo:
|
View merge request for foo:
|
||||||
http://example.com/foo/bar/merge_requests/1
|
http://example.com/foo/bar/-/merge_requests/1
|
||||||
MESSAGE
|
MESSAGE
|
||||||
|
|
||||||
expect(subject.messages.first.message).to eq(message)
|
expect(subject.messages.first.message).to eq(message)
|
||||||
|
@ -40,13 +40,13 @@ describe Gitlab::InternalPostReceive::Response do
|
||||||
|
|
||||||
context 'when :new_merge_request is true' do
|
context 'when :new_merge_request is true' do
|
||||||
it 'adds a basic message to create a new merge request' do
|
it 'adds a basic message to create a new merge request' do
|
||||||
url_data = { new_merge_request: true, branch_name: 'bar', url: 'http://example.com/foo/bar/merge_requests/new?merge_request%5Bsource_branch%5D=bar' }
|
url_data = { new_merge_request: true, branch_name: 'bar', url: 'http://example.com/foo/bar/-/merge_requests/new?merge_request%5Bsource_branch%5D=bar' }
|
||||||
|
|
||||||
subject.add_merge_request_url(url_data)
|
subject.add_merge_request_url(url_data)
|
||||||
|
|
||||||
message = <<~MESSAGE.strip
|
message = <<~MESSAGE.strip
|
||||||
To create a merge request for bar, visit:
|
To create a merge request for bar, visit:
|
||||||
http://example.com/foo/bar/merge_requests/new?merge_request%5Bsource_branch%5D=bar
|
http://example.com/foo/bar/-/merge_requests/new?merge_request%5Bsource_branch%5D=bar
|
||||||
MESSAGE
|
MESSAGE
|
||||||
|
|
||||||
expect(subject.messages.first.message).to eq(message)
|
expect(subject.messages.first.message).to eq(message)
|
||||||
|
|
|
@ -55,7 +55,7 @@ describe Gitlab::UrlBuilder do
|
||||||
|
|
||||||
url = described_class.build(merge_request)
|
url = described_class.build(merge_request)
|
||||||
|
|
||||||
expect(url).to eq "#{Settings.gitlab['url']}/#{merge_request.project.full_path}/merge_requests/#{merge_request.iid}"
|
expect(url).to eq "#{Settings.gitlab['url']}/#{merge_request.project.full_path}/-/merge_requests/#{merge_request.iid}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ describe Gitlab::UrlBuilder do
|
||||||
|
|
||||||
url = described_class.build(note)
|
url = described_class.build(note)
|
||||||
|
|
||||||
expect(url).to eq "#{Settings.gitlab['url']}/#{merge_request.project.full_path}/merge_requests/#{merge_request.iid}#note_#{note.id}"
|
expect(url).to eq "#{Settings.gitlab['url']}/#{merge_request.project.full_path}/-/merge_requests/#{merge_request.iid}#note_#{note.id}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@ describe Gitlab::UrlBuilder do
|
||||||
|
|
||||||
url = described_class.build(note)
|
url = described_class.build(note)
|
||||||
|
|
||||||
expect(url).to eq "#{Settings.gitlab['url']}/#{merge_request.project.full_path}/merge_requests/#{merge_request.iid}#note_#{note.id}"
|
expect(url).to eq "#{Settings.gitlab['url']}/#{merge_request.project.full_path}/-/merge_requests/#{merge_request.iid}#note_#{note.id}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ describe ChatMessage::MergeMessage do
|
||||||
context 'open' do
|
context 'open' do
|
||||||
it 'returns a message regarding opening of merge requests' do
|
it 'returns a message regarding opening of merge requests' do
|
||||||
expect(subject.pretext).to eq(
|
expect(subject.pretext).to eq(
|
||||||
'Test User (test.user) opened <http://somewhere.com/merge_requests/100|!100 *Merge Request title*> in <http://somewhere.com|project_name>')
|
'Test User (test.user) opened <http://somewhere.com/-/merge_requests/100|!100 *Merge Request title*> in <http://somewhere.com|project_name>')
|
||||||
expect(subject.attachments).to be_empty
|
expect(subject.attachments).to be_empty
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -63,7 +63,7 @@ describe ChatMessage::MergeMessage do
|
||||||
end
|
end
|
||||||
it 'returns a message regarding closing of merge requests' do
|
it 'returns a message regarding closing of merge requests' do
|
||||||
expect(subject.pretext).to eq(
|
expect(subject.pretext).to eq(
|
||||||
'Test User (test.user) closed <http://somewhere.com/merge_requests/100|!100 *Merge Request title*> in <http://somewhere.com|project_name>')
|
'Test User (test.user) closed <http://somewhere.com/-/merge_requests/100|!100 *Merge Request title*> in <http://somewhere.com|project_name>')
|
||||||
expect(subject.attachments).to be_empty
|
expect(subject.attachments).to be_empty
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -77,12 +77,12 @@ describe ChatMessage::MergeMessage do
|
||||||
context 'open' do
|
context 'open' do
|
||||||
it 'returns a message regarding opening of merge requests' do
|
it 'returns a message regarding opening of merge requests' do
|
||||||
expect(subject.pretext).to eq(
|
expect(subject.pretext).to eq(
|
||||||
'Test User (test.user) opened [!100 *Merge Request title*](http://somewhere.com/merge_requests/100) in [project_name](http://somewhere.com)')
|
'Test User (test.user) opened [!100 *Merge Request title*](http://somewhere.com/-/merge_requests/100) in [project_name](http://somewhere.com)')
|
||||||
expect(subject.attachments).to be_empty
|
expect(subject.attachments).to be_empty
|
||||||
expect(subject.activity).to eq({
|
expect(subject.activity).to eq({
|
||||||
title: 'Merge Request opened by Test User (test.user)',
|
title: 'Merge Request opened by Test User (test.user)',
|
||||||
subtitle: 'in [project_name](http://somewhere.com)',
|
subtitle: 'in [project_name](http://somewhere.com)',
|
||||||
text: '[!100 *Merge Request title*](http://somewhere.com/merge_requests/100)',
|
text: '[!100 *Merge Request title*](http://somewhere.com/-/merge_requests/100)',
|
||||||
image: 'http://someavatar.com'
|
image: 'http://someavatar.com'
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
@ -95,12 +95,12 @@ describe ChatMessage::MergeMessage do
|
||||||
|
|
||||||
it 'returns a message regarding closing of merge requests' do
|
it 'returns a message regarding closing of merge requests' do
|
||||||
expect(subject.pretext).to eq(
|
expect(subject.pretext).to eq(
|
||||||
'Test User (test.user) closed [!100 *Merge Request title*](http://somewhere.com/merge_requests/100) in [project_name](http://somewhere.com)')
|
'Test User (test.user) closed [!100 *Merge Request title*](http://somewhere.com/-/merge_requests/100) in [project_name](http://somewhere.com)')
|
||||||
expect(subject.attachments).to be_empty
|
expect(subject.attachments).to be_empty
|
||||||
expect(subject.activity).to eq({
|
expect(subject.activity).to eq({
|
||||||
title: 'Merge Request closed by Test User (test.user)',
|
title: 'Merge Request closed by Test User (test.user)',
|
||||||
subtitle: 'in [project_name](http://somewhere.com)',
|
subtitle: 'in [project_name](http://somewhere.com)',
|
||||||
text: '[!100 *Merge Request title*](http://somewhere.com/merge_requests/100)',
|
text: '[!100 *Merge Request title*](http://somewhere.com/-/merge_requests/100)',
|
||||||
image: 'http://someavatar.com'
|
image: 'http://someavatar.com'
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
|
@ -101,7 +101,7 @@ describe MergeRequestPresenter do
|
||||||
allow(presenter).to receive_message_chain(:conflicts, :can_be_resolved_by?).with(user) { true }
|
allow(presenter).to receive_message_chain(:conflicts, :can_be_resolved_by?).with(user) { true }
|
||||||
|
|
||||||
expect(path)
|
expect(path)
|
||||||
.to eq("/#{project.full_path}/merge_requests/#{resource.iid}/conflicts")
|
.to eq("/#{project.full_path}/-/merge_requests/#{resource.iid}/conflicts")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -179,7 +179,7 @@ describe MergeRequestPresenter do
|
||||||
|
|
||||||
it 'returns correct link with correct text' do
|
it 'returns correct link with correct text' do
|
||||||
is_expected
|
is_expected
|
||||||
.to match("#{project.full_path}/merge_requests/#{resource.iid}/assign_related_issues")
|
.to match("#{project.full_path}/-/merge_requests/#{resource.iid}/assign_related_issues")
|
||||||
|
|
||||||
is_expected
|
is_expected
|
||||||
.to match("Assign yourself to this issue")
|
.to match("Assign yourself to this issue")
|
||||||
|
@ -192,7 +192,7 @@ describe MergeRequestPresenter do
|
||||||
|
|
||||||
it 'returns correct link with correct text' do
|
it 'returns correct link with correct text' do
|
||||||
is_expected
|
is_expected
|
||||||
.to match("#{project.full_path}/merge_requests/#{resource.iid}/assign_related_issues")
|
.to match("#{project.full_path}/-/merge_requests/#{resource.iid}/assign_related_issues")
|
||||||
|
|
||||||
is_expected
|
is_expected
|
||||||
.to match("Assign yourself to these issues")
|
.to match("Assign yourself to these issues")
|
||||||
|
@ -221,7 +221,7 @@ describe MergeRequestPresenter do
|
||||||
.with(user)
|
.with(user)
|
||||||
.and_return(true)
|
.and_return(true)
|
||||||
|
|
||||||
is_expected.to eq("/#{resource.project.full_path}/merge_requests/#{resource.iid}/cancel_auto_merge")
|
is_expected.to eq("/#{resource.project.full_path}/-/merge_requests/#{resource.iid}/cancel_auto_merge")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -248,7 +248,7 @@ describe MergeRequestPresenter do
|
||||||
.and_return(true)
|
.and_return(true)
|
||||||
|
|
||||||
is_expected
|
is_expected
|
||||||
.to eq("/#{resource.project.full_path}/merge_requests/#{resource.iid}/merge")
|
.to eq("/#{resource.project.full_path}/-/merge_requests/#{resource.iid}/merge")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -312,7 +312,7 @@ describe MergeRequestPresenter do
|
||||||
project.add_maintainer(user)
|
project.add_maintainer(user)
|
||||||
|
|
||||||
is_expected
|
is_expected
|
||||||
.to eq("/#{resource.project.full_path}/merge_requests/#{resource.iid}/remove_wip")
|
.to eq("/#{resource.project.full_path}/-/merge_requests/#{resource.iid}/remove_wip")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -535,7 +535,7 @@ describe MergeRequestPresenter do
|
||||||
|
|
||||||
it 'returns path' do
|
it 'returns path' do
|
||||||
is_expected
|
is_expected
|
||||||
.to eq("/#{project.full_path}/merge_requests/#{resource.iid}/rebase")
|
.to eq("/#{project.full_path}/-/merge_requests/#{resource.iid}/rebase")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -858,7 +858,7 @@ describe API::Internal::Base do
|
||||||
|
|
||||||
message = <<~MESSAGE.strip
|
message = <<~MESSAGE.strip
|
||||||
To create a merge request for #{branch_name}, visit:
|
To create a merge request for #{branch_name}, visit:
|
||||||
http://#{Gitlab.config.gitlab.host}/#{project.full_path}/merge_requests/new?merge_request%5Bsource_branch%5D=#{branch_name}
|
http://#{Gitlab.config.gitlab.host}/#{project.full_path}/-/merge_requests/new?merge_request%5Bsource_branch%5D=#{branch_name}
|
||||||
MESSAGE
|
MESSAGE
|
||||||
|
|
||||||
expect(json_response['messages']).to include(build_basic_message(message))
|
expect(json_response['messages']).to include(build_basic_message(message))
|
||||||
|
@ -921,7 +921,7 @@ describe API::Internal::Base do
|
||||||
|
|
||||||
message = <<~MESSAGE.strip
|
message = <<~MESSAGE.strip
|
||||||
View merge request for #{branch_name}:
|
View merge request for #{branch_name}:
|
||||||
http://#{Gitlab.config.gitlab.host}/#{project.full_path}/merge_requests/1
|
http://#{Gitlab.config.gitlab.host}/#{project.full_path}/-/merge_requests/1
|
||||||
MESSAGE
|
MESSAGE
|
||||||
|
|
||||||
expect(json_response['messages']).to include(build_basic_message(message))
|
expect(json_response['messages']).to include(build_basic_message(message))
|
||||||
|
|
|
@ -76,7 +76,7 @@ describe API::Releases do
|
||||||
mr_uri = URI.parse(links['merge_requests_url'])
|
mr_uri = URI.parse(links['merge_requests_url'])
|
||||||
issue_uri = URI.parse(links['issues_url'])
|
issue_uri = URI.parse(links['issues_url'])
|
||||||
|
|
||||||
expect(mr_uri.path).to eq("#{path_base}/merge_requests")
|
expect(mr_uri.path).to eq("#{path_base}/-/merge_requests")
|
||||||
expect(issue_uri.path).to eq("#{path_base}/issues")
|
expect(issue_uri.path).to eq("#{path_base}/issues")
|
||||||
expect(mr_uri.query).to eq(expected_query)
|
expect(mr_uri.query).to eq(expected_query)
|
||||||
expect(issue_uri.query).to eq(expected_query)
|
expect(issue_uri.query).to eq(expected_query)
|
||||||
|
|
|
@ -4,7 +4,7 @@ require 'spec_helper'
|
||||||
|
|
||||||
describe 'merge requests discussions' do
|
describe 'merge requests discussions' do
|
||||||
# Further tests can be found at merge_requests_controller_spec.rb
|
# Further tests can be found at merge_requests_controller_spec.rb
|
||||||
describe 'GET /:namespace/:project/merge_requests/:iid/discussions' do
|
describe 'GET /:namespace/:project/-/merge_requests/:iid/discussions' do
|
||||||
let(:project) { create(:project, :repository) }
|
let(:project) { create(:project, :repository) }
|
||||||
let(:user) { project.owner }
|
let(:user) { project.owner }
|
||||||
let(:merge_request) { create(:merge_request_with_diffs, target_project: project, source_project: project) }
|
let(:merge_request) { create(:merge_request_with_diffs, target_project: project, source_project: project) }
|
||||||
|
|
|
@ -26,8 +26,8 @@ describe 'Update of user activity' do
|
||||||
'/dashboard/todos',
|
'/dashboard/todos',
|
||||||
'/group/project/issues',
|
'/group/project/issues',
|
||||||
'/group/project/issues/10',
|
'/group/project/issues/10',
|
||||||
'/group/project/merge_requests',
|
'/group/project/-/merge_requests',
|
||||||
'/group/project/merge_requests/15'
|
'/group/project/-/merge_requests/15'
|
||||||
]
|
]
|
||||||
|
|
||||||
context 'without an authenticated user' do
|
context 'without an authenticated user' do
|
||||||
|
|
|
@ -292,26 +292,26 @@ describe 'project routing' do
|
||||||
|
|
||||||
describe Projects::MergeRequestsController, 'routing' do
|
describe Projects::MergeRequestsController, 'routing' do
|
||||||
it 'to #commits' do
|
it 'to #commits' do
|
||||||
expect(get('/gitlab/gitlabhq/merge_requests/1/commits.json')).to route_to('projects/merge_requests#commits', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', format: 'json')
|
expect(get('/gitlab/gitlabhq/-/merge_requests/1/commits.json')).to route_to('projects/merge_requests#commits', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', format: 'json')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'to #pipelines' do
|
it 'to #pipelines' do
|
||||||
expect(get('/gitlab/gitlabhq/merge_requests/1/pipelines.json')).to route_to('projects/merge_requests#pipelines', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', format: 'json')
|
expect(get('/gitlab/gitlabhq/-/merge_requests/1/pipelines.json')).to route_to('projects/merge_requests#pipelines', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', format: 'json')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'to #merge' do
|
it 'to #merge' do
|
||||||
expect(post('/gitlab/gitlabhq/merge_requests/1/merge')).to route_to(
|
expect(post('/gitlab/gitlabhq/-/merge_requests/1/merge')).to route_to(
|
||||||
'projects/merge_requests#merge',
|
'projects/merge_requests#merge',
|
||||||
namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1'
|
namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1'
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'to #show' do
|
it 'to #show' do
|
||||||
expect(get('/gitlab/gitlabhq/merge_requests/1.diff')).to route_to('projects/merge_requests#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', format: 'diff')
|
expect(get('/gitlab/gitlabhq/-/merge_requests/1.diff')).to route_to('projects/merge_requests#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', format: 'diff')
|
||||||
expect(get('/gitlab/gitlabhq/merge_requests/1.patch')).to route_to('projects/merge_requests#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', format: 'patch')
|
expect(get('/gitlab/gitlabhq/-/merge_requests/1.patch')).to route_to('projects/merge_requests#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', format: 'patch')
|
||||||
expect(get('/gitlab/gitlabhq/merge_requests/1/diffs')).to route_to('projects/merge_requests#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', tab: 'diffs')
|
expect(get('/gitlab/gitlabhq/-/merge_requests/1/diffs')).to route_to('projects/merge_requests#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', tab: 'diffs')
|
||||||
expect(get('/gitlab/gitlabhq/merge_requests/1/commits')).to route_to('projects/merge_requests#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', tab: 'commits')
|
expect(get('/gitlab/gitlabhq/-/merge_requests/1/commits')).to route_to('projects/merge_requests#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', tab: 'commits')
|
||||||
expect(get('/gitlab/gitlabhq/merge_requests/1/pipelines')).to route_to('projects/merge_requests#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', tab: 'pipelines')
|
expect(get('/gitlab/gitlabhq/-/merge_requests/1/pipelines')).to route_to('projects/merge_requests#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', tab: 'pipelines')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'to #show from scoped route' do
|
it 'to #show from scoped route' do
|
||||||
|
@ -323,46 +323,52 @@ describe 'project routing' do
|
||||||
it_behaves_like 'RESTful project resources' do
|
it_behaves_like 'RESTful project resources' do
|
||||||
let(:controller) { 'merge_requests' }
|
let(:controller) { 'merge_requests' }
|
||||||
let(:actions) { [:index, :edit, :show, :update] }
|
let(:actions) { [:index, :edit, :show, :update] }
|
||||||
|
let(:controller_path) { '/-/merge_requests' }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it_behaves_like 'redirecting a legacy project path', "/gitlab/gitlabhq/merge_requests", "/gitlab/gitlabhq/-/merge_requests"
|
||||||
|
it_behaves_like 'redirecting a legacy project path', "/gitlab/gitlabhq/merge_requests/1/diffs", "/gitlab/gitlabhq/-/merge_requests/1/diffs"
|
||||||
end
|
end
|
||||||
|
|
||||||
describe Projects::MergeRequests::CreationsController, 'routing' do
|
describe Projects::MergeRequests::CreationsController, 'routing' do
|
||||||
it 'to #new' do
|
it 'to #new' do
|
||||||
expect(get('/gitlab/gitlabhq/merge_requests/new')).to route_to('projects/merge_requests/creations#new', namespace_id: 'gitlab', project_id: 'gitlabhq')
|
expect(get('/gitlab/gitlabhq/-/merge_requests/new')).to route_to('projects/merge_requests/creations#new', namespace_id: 'gitlab', project_id: 'gitlabhq')
|
||||||
expect(get('/gitlab/gitlabhq/merge_requests/new/diffs')).to route_to('projects/merge_requests/creations#new', namespace_id: 'gitlab', project_id: 'gitlabhq', tab: 'diffs')
|
expect(get('/gitlab/gitlabhq/-/merge_requests/new/diffs')).to route_to('projects/merge_requests/creations#new', namespace_id: 'gitlab', project_id: 'gitlabhq', tab: 'diffs')
|
||||||
expect(get('/gitlab/gitlabhq/merge_requests/new/pipelines')).to route_to('projects/merge_requests/creations#new', namespace_id: 'gitlab', project_id: 'gitlabhq', tab: 'pipelines')
|
expect(get('/gitlab/gitlabhq/-/merge_requests/new/pipelines')).to route_to('projects/merge_requests/creations#new', namespace_id: 'gitlab', project_id: 'gitlabhq', tab: 'pipelines')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'to #create' do
|
it 'to #create' do
|
||||||
expect(post('/gitlab/gitlabhq/merge_requests')).to route_to('projects/merge_requests/creations#create', namespace_id: 'gitlab', project_id: 'gitlabhq')
|
expect(post('/gitlab/gitlabhq/-/merge_requests')).to route_to('projects/merge_requests/creations#create', namespace_id: 'gitlab', project_id: 'gitlabhq')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'to #branch_from' do
|
it 'to #branch_from' do
|
||||||
expect(get('/gitlab/gitlabhq/merge_requests/new/branch_from')).to route_to('projects/merge_requests/creations#branch_from', namespace_id: 'gitlab', project_id: 'gitlabhq')
|
expect(get('/gitlab/gitlabhq/-/merge_requests/new/branch_from')).to route_to('projects/merge_requests/creations#branch_from', namespace_id: 'gitlab', project_id: 'gitlabhq')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'to #branch_to' do
|
it 'to #branch_to' do
|
||||||
expect(get('/gitlab/gitlabhq/merge_requests/new/branch_to')).to route_to('projects/merge_requests/creations#branch_to', namespace_id: 'gitlab', project_id: 'gitlabhq')
|
expect(get('/gitlab/gitlabhq/-/merge_requests/new/branch_to')).to route_to('projects/merge_requests/creations#branch_to', namespace_id: 'gitlab', project_id: 'gitlabhq')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'to #pipelines' do
|
it 'to #pipelines' do
|
||||||
expect(get('/gitlab/gitlabhq/merge_requests/new/pipelines.json')).to route_to('projects/merge_requests/creations#pipelines', namespace_id: 'gitlab', project_id: 'gitlabhq', format: 'json')
|
expect(get('/gitlab/gitlabhq/-/merge_requests/new/pipelines.json')).to route_to('projects/merge_requests/creations#pipelines', namespace_id: 'gitlab', project_id: 'gitlabhq', format: 'json')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'to #diffs' do
|
it 'to #diffs' do
|
||||||
expect(get('/gitlab/gitlabhq/merge_requests/new/diffs.json')).to route_to('projects/merge_requests/creations#diffs', namespace_id: 'gitlab', project_id: 'gitlabhq', format: 'json')
|
expect(get('/gitlab/gitlabhq/-/merge_requests/new/diffs.json')).to route_to('projects/merge_requests/creations#diffs', namespace_id: 'gitlab', project_id: 'gitlabhq', format: 'json')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it_behaves_like 'redirecting a legacy project path', "/gitlab/gitlabhq/merge_requests/new", "/gitlab/gitlabhq/-/merge_requests/new"
|
||||||
end
|
end
|
||||||
|
|
||||||
describe Projects::MergeRequests::DiffsController, 'routing' do
|
describe Projects::MergeRequests::DiffsController, 'routing' do
|
||||||
it 'to #show' do
|
it 'to #show' do
|
||||||
expect(get('/gitlab/gitlabhq/merge_requests/1/diffs.json')).to route_to('projects/merge_requests/diffs#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', format: 'json')
|
expect(get('/gitlab/gitlabhq/-/merge_requests/1/diffs.json')).to route_to('projects/merge_requests/diffs#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', format: 'json')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe Projects::MergeRequests::ConflictsController, 'routing' do
|
describe Projects::MergeRequests::ConflictsController, 'routing' do
|
||||||
it 'to #show' do
|
it 'to #show' do
|
||||||
expect(get('/gitlab/gitlabhq/merge_requests/1/conflicts')).to route_to('projects/merge_requests/conflicts#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1')
|
expect(get('/gitlab/gitlabhq/-/merge_requests/1/conflicts')).to route_to('projects/merge_requests/conflicts#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# raw_project_snippet GET /:project_id/snippets/:id/raw(.:format) snippets#raw
|
# raw_project_snippet GET /:project_id/snippets/:id/raw(.:format) snippets#raw
|
||||||
|
|
|
@ -45,12 +45,12 @@ describe MergeRequestWidgetEntity do
|
||||||
|
|
||||||
it 'has email_patches_path' do
|
it 'has email_patches_path' do
|
||||||
expect(subject[:email_patches_path])
|
expect(subject[:email_patches_path])
|
||||||
.to eq("/#{resource.project.full_path}/merge_requests/#{resource.iid}.patch")
|
.to eq("/#{resource.project.full_path}/-/merge_requests/#{resource.iid}.patch")
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has plain_diff_path' do
|
it 'has plain_diff_path' do
|
||||||
expect(subject[:plain_diff_path])
|
expect(subject[:plain_diff_path])
|
||||||
.to eq("/#{resource.project.full_path}/merge_requests/#{resource.iid}.diff")
|
.to eq("/#{resource.project.full_path}/-/merge_requests/#{resource.iid}.diff")
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'when source project is deleted' do
|
describe 'when source project is deleted' do
|
||||||
|
|
|
@ -26,7 +26,7 @@ describe PaginatedDiffEntity do
|
||||||
expect(subject[:pagination]).to eq(
|
expect(subject[:pagination]).to eq(
|
||||||
current_page: 2,
|
current_page: 2,
|
||||||
next_page: 3,
|
next_page: 3,
|
||||||
next_page_href: "/#{merge_request.project.full_path}/merge_requests/#{merge_request.iid}/diffs_batch.json?page=3",
|
next_page_href: "/#{merge_request.project.full_path}/-/merge_requests/#{merge_request.iid}/diffs_batch.json?page=3",
|
||||||
total_pages: 7
|
total_pages: 7
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
|
@ -11,7 +11,7 @@ describe Ci::ExpirePipelineCacheService do
|
||||||
describe '#execute' do
|
describe '#execute' do
|
||||||
it 'invalidates Etag caching for project pipelines path' do
|
it 'invalidates Etag caching for project pipelines path' do
|
||||||
pipelines_path = "/#{project.full_path}/pipelines.json"
|
pipelines_path = "/#{project.full_path}/pipelines.json"
|
||||||
new_mr_pipelines_path = "/#{project.full_path}/merge_requests/new.json"
|
new_mr_pipelines_path = "/#{project.full_path}/-/merge_requests/new.json"
|
||||||
pipeline_path = "/#{project.full_path}/pipelines/#{pipeline.id}.json"
|
pipeline_path = "/#{project.full_path}/pipelines/#{pipeline.id}.json"
|
||||||
|
|
||||||
expect_any_instance_of(Gitlab::EtagCaching::Store).to receive(:touch).with(pipelines_path)
|
expect_any_instance_of(Gitlab::EtagCaching::Store).to receive(:touch).with(pipelines_path)
|
||||||
|
@ -24,7 +24,7 @@ describe Ci::ExpirePipelineCacheService do
|
||||||
it 'invalidates Etag caching for merge request pipelines if pipeline runs on any commit of that source branch' do
|
it 'invalidates Etag caching for merge request pipelines if pipeline runs on any commit of that source branch' do
|
||||||
pipeline = create(:ci_empty_pipeline, status: 'created', project: project, ref: 'master')
|
pipeline = create(:ci_empty_pipeline, status: 'created', project: project, ref: 'master')
|
||||||
merge_request = create(:merge_request, source_project: project, source_branch: pipeline.ref)
|
merge_request = create(:merge_request, source_project: project, source_branch: pipeline.ref)
|
||||||
merge_request_pipelines_path = "/#{project.full_path}/merge_requests/#{merge_request.iid}/pipelines.json"
|
merge_request_pipelines_path = "/#{project.full_path}/-/merge_requests/#{merge_request.iid}/pipelines.json"
|
||||||
|
|
||||||
allow_any_instance_of(Gitlab::EtagCaching::Store).to receive(:touch)
|
allow_any_instance_of(Gitlab::EtagCaching::Store).to receive(:touch)
|
||||||
expect_any_instance_of(Gitlab::EtagCaching::Store).to receive(:touch).with(merge_request_pipelines_path)
|
expect_any_instance_of(Gitlab::EtagCaching::Store).to receive(:touch).with(merge_request_pipelines_path)
|
||||||
|
|
|
@ -8,8 +8,8 @@ describe MergeRequests::GetUrlsService do
|
||||||
let(:project) { create(:project, :public, :repository) }
|
let(:project) { create(:project, :public, :repository) }
|
||||||
let(:service) { described_class.new(project) }
|
let(:service) { described_class.new(project) }
|
||||||
let(:source_branch) { "merge-test" }
|
let(:source_branch) { "merge-test" }
|
||||||
let(:new_merge_request_url) { "http://#{Gitlab.config.gitlab.host}/#{project.full_path}/merge_requests/new?merge_request%5Bsource_branch%5D=#{source_branch}" }
|
let(:new_merge_request_url) { "http://#{Gitlab.config.gitlab.host}/#{project.full_path}/-/merge_requests/new?merge_request%5Bsource_branch%5D=#{source_branch}" }
|
||||||
let(:show_merge_request_url) { "http://#{Gitlab.config.gitlab.host}/#{project.full_path}/merge_requests/#{merge_request.iid}" }
|
let(:show_merge_request_url) { "http://#{Gitlab.config.gitlab.host}/#{project.full_path}/-/merge_requests/#{merge_request.iid}" }
|
||||||
let(:new_branch_changes) { "#{Gitlab::Git::BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{source_branch}" }
|
let(:new_branch_changes) { "#{Gitlab::Git::BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{source_branch}" }
|
||||||
let(:deleted_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 #{Gitlab::Git::BLANK_SHA} refs/heads/#{source_branch}" }
|
let(:deleted_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 #{Gitlab::Git::BLANK_SHA} refs/heads/#{source_branch}" }
|
||||||
let(:existing_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{source_branch}" }
|
let(:existing_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{source_branch}" }
|
||||||
|
@ -134,7 +134,7 @@ describe MergeRequests::GetUrlsService do
|
||||||
let(:new_branch_changes) { "#{Gitlab::Git::BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/new_branch" }
|
let(:new_branch_changes) { "#{Gitlab::Git::BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/new_branch" }
|
||||||
let(:existing_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/markdown" }
|
let(:existing_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/markdown" }
|
||||||
let(:changes) { "#{new_branch_changes}\n#{existing_branch_changes}" }
|
let(:changes) { "#{new_branch_changes}\n#{existing_branch_changes}" }
|
||||||
let(:new_merge_request_url) { "http://#{Gitlab.config.gitlab.host}/#{project.full_path}/merge_requests/new?merge_request%5Bsource_branch%5D=new_branch" }
|
let(:new_merge_request_url) { "http://#{Gitlab.config.gitlab.host}/#{project.full_path}/-/merge_requests/new?merge_request%5Bsource_branch%5D=new_branch" }
|
||||||
|
|
||||||
it 'returns 2 urls for both creating new and showing merge request' do
|
it 'returns 2 urls for both creating new and showing merge request' do
|
||||||
result = service.execute(changes)
|
result = service.execute(changes)
|
||||||
|
|
|
@ -314,7 +314,7 @@ describe SystemNoteService do
|
||||||
url = if type == 'commit'
|
url = if type == 'commit'
|
||||||
"#{Settings.gitlab.base_url}/#{project.namespace.path}/#{project.path}/commit/#{commit.id}"
|
"#{Settings.gitlab.base_url}/#{project.namespace.path}/#{project.path}/commit/#{commit.id}"
|
||||||
else
|
else
|
||||||
"#{Settings.gitlab.base_url}/#{project.namespace.path}/#{project.path}/merge_requests/#{merge_request.iid}"
|
"#{Settings.gitlab.base_url}/#{project.namespace.path}/#{project.path}/-/merge_requests/#{merge_request.iid}"
|
||||||
end
|
end
|
||||||
|
|
||||||
link = double(object: { 'url' => url })
|
link = double(object: { 'url' => url })
|
||||||
|
|
Loading…
Reference in New Issue