Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2019-09-30 12:06:01 +00:00
parent 94611567bd
commit dea6ebd31a
95 changed files with 265 additions and 199 deletions

View File

@ -209,7 +209,7 @@ review-qa-all:
when: manual
parallel: 5
script:
- export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/review-qa-all_master_report.json
- export KNAPSACK_REPORT_PATH=knapsack/master_report.json
- export KNAPSACK_TEST_FILE_PATTERN=qa/specs/features/**/*_spec.rb
- gitlab-qa Test::Instance::Any "${QA_IMAGE}" "${CI_ENVIRONMENT_URL}" -- --format RspecJunitFormatter --out tmp/rspec-${CI_JOB_ID}.xml --format html --out tmp/rspec.htm --color --format documentation

View File

@ -2,9 +2,9 @@
## Canonical source
The canonical source of GitLab where development takes place is [hosted on GitLab.com](https://gitlab.com/gitlab-org/gitlab).
The canonical source of GitLab where all development takes place is [hosted on GitLab.com](https://gitlab.com/gitlab-org/gitlab).
A FOSS source of GitLab is hosted on a [mirrored, read-only project on GitLab.com](https://gitlab.com/gitlab-org/gitlab-foss/).
If you wish to clone a copy of GitLab without proprietary code, you can use the read-only mirror of GitLab located at https://gitlab.com/gitlab-org/gitlab-foss/. Please do not submit any issues and/or merge requests to this project.
## Free trial

View File

@ -1,11 +0,0 @@
export default {
data() {
return {
isCustomStageForm: false,
};
},
methods: {
showAddStageForm: () => {},
hideAddStageForm: () => {},
},
};

View File

@ -3,7 +3,6 @@ import Vue from 'vue';
import Cookies from 'js-cookie';
import { GlEmptyState } from '@gitlab/ui';
import filterMixins from 'ee_else_ce/analytics/cycle_analytics/mixins/filter_mixins';
import addStageMixin from 'ee_else_ce/analytics/cycle_analytics/mixins/add_stage_mixin';
import Flash from '../flash';
import { __ } from '~/locale';
import Translate from '../vue_shared/translate';
@ -44,14 +43,8 @@ export default () => {
DateRangeDropdown: () =>
import('ee_component/analytics/shared/components/date_range_dropdown.vue'),
'stage-nav-item': stageNavItem,
CustomStageForm: () =>
import('ee_component/analytics/cycle_analytics/components/custom_stage_form.vue'),
AddStageButton: () =>
import('ee_component/analytics/cycle_analytics/components/add_stage_button.vue'),
CustomStageFormContainer: () =>
import('ee_component/analytics/cycle_analytics/components/custom_stage_form_container.vue'),
},
mixins: [filterMixins, addStageMixin],
mixins: [filterMixins],
data() {
return {
store: CycleAnalyticsStore,
@ -131,7 +124,6 @@ export default () => {
return;
}
this.hideAddStageForm();
this.isLoadingStage = true;
this.store.setStageEvents([], stage);
this.store.setActiveStage(stage);

View File

@ -152,6 +152,14 @@ export const commitChanges = ({ commit, state, getters, dispatch, rootState, roo
branch: getters.branchName,
})
.then(() => {
commit(rootTypes.CLEAR_STAGED_CHANGES, null, { root: true });
commit(rootTypes.CLEAR_REPLACED_FILES, null, { root: true });
setTimeout(() => {
commit(rootTypes.SET_LAST_COMMIT_MSG, '', { root: true });
}, 5000);
if (state.shouldCreateMR) {
const { currentProject } = rootGetters;
const targetBranch = getters.isCreatingNewBranch
@ -164,14 +172,6 @@ export const commitChanges = ({ commit, state, getters, dispatch, rootState, roo
{ root: true },
);
}
commit(rootTypes.CLEAR_STAGED_CHANGES, null, { root: true });
commit(rootTypes.CLEAR_REPLACED_FILES, null, { root: true });
setTimeout(() => {
commit(rootTypes.SET_LAST_COMMIT_MSG, '', { root: true });
}, 5000);
})
.then(() => {
if (rootGetters.lastOpenedFile) {

View File

@ -1,5 +1,5 @@
<script>
import { __ } from '~/locale';
import { s__, __ } from '~/locale';
import { GlLink, GlButton } from '@gitlab/ui';
import { GlAreaChart, GlLineChart, GlChartSeriesLabel } from '@gitlab/ui/dist/charts';
import dateFormat from 'dateformat';
@ -52,6 +52,16 @@ export default {
required: false,
default: () => [],
},
legendAverageText: {
type: String,
required: false,
default: s__('Metrics|Avg'),
},
legendMaxText: {
type: String,
required: false,
default: s__('Metrics|Max'),
},
},
data() {
return {
@ -260,7 +270,6 @@ export default {
<slot></slot>
</div>
</div>
<component
:is="glChartComponent"
ref="chart"
@ -271,6 +280,8 @@ export default {
:thresholds="thresholds"
:width="width"
:height="height"
:average-text="legendAverageText"
:max-text="legendMaxText"
@updated="onChartUpdated"
>
<template v-if="tooltip.isDeployment">

View File

@ -81,7 +81,7 @@ module SubmoduleHelper
end
def relative_self_links(relative_path, commit, project)
relative_path.rstrip!
relative_path = relative_path.rstrip
absolute_project_path = "/" + project.full_path
# Resolve `relative_path` to target path

View File

@ -85,7 +85,7 @@ module Emails
@project = Project.find(project_id)
@results = results
mail(to: recipient(@user.id, @project.group), subject: subject('Imported issues')) do |format|
mail(to: @user.notification_email_for(@project.group), subject: subject('Imported issues')) do |format|
format.html { render layout: 'mailer' }
format.text { render layout: 'mailer' }
end
@ -105,7 +105,7 @@ module Emails
def issue_thread_options(sender_id, recipient_id, reason)
{
from: sender(sender_id),
to: recipient(recipient_id, @project.group),
to: User.find(recipient_id).notification_email_for(@project.group),
subject: subject("#{@issue.title} (##{@issue.iid})"),
'X-GitLab-NotificationReason' => reason
}

View File

@ -13,7 +13,9 @@ module Emails
@member_source_type = member_source_type
@member_id = member_id
mail(to: recipient(recipient_id, notification_group),
user = User.find(recipient_id)
mail(to: user.notification_email_for(notification_group),
subject: subject("Request to join the #{member_source.human_name} #{member_source.model_name.singular}"))
end
@ -21,7 +23,7 @@ module Emails
@member_source_type = member_source_type
@member_id = member_id
mail(to: recipient(member.user, notification_group),
mail(to: member.user.notification_email_for(notification_group),
subject: subject("Access to the #{member_source.human_name} #{member_source.model_name.singular} was granted"))
end
@ -29,7 +31,9 @@ module Emails
@member_source_type = member_source_type
@member_source = member_source_class.find(source_id)
mail(to: recipient(user_id, notification_group),
user = User.find(user_id)
mail(to: user.notification_email_for(notification_group),
subject: subject("Access to the #{member_source.human_name} #{member_source.model_name.singular} was denied"))
end
@ -47,7 +51,7 @@ module Emails
@member_id = member_id
return unless member.created_by
mail(to: recipient(member.created_by, notification_group),
mail(to: member.created_by.notification_email_for(notification_group),
subject: subject('Invitation accepted'))
end
@ -58,7 +62,9 @@ module Emails
@member_source = member_source_class.find(source_id)
@invite_email = invite_email
mail(to: recipient(created_by_id, notification_group),
user = User.find(created_by_id)
mail(to: user.notification_email_for(notification_group),
subject: subject('Invitation declined'))
end

View File

@ -110,7 +110,7 @@ module Emails
def merge_request_thread_options(sender_id, recipient_id, reason = nil)
{
from: sender(sender_id),
to: recipient(recipient_id, @project.group),
to: User.find(recipient_id).notification_email_for(@project.group),
subject: subject("#{@merge_request.title} (#{@merge_request.to_reference})"),
'X-GitLab-NotificationReason' => reason
}

View File

@ -55,7 +55,7 @@ module Emails
def note_thread_options(recipient_id, reason)
{
from: sender(@note.author_id),
to: recipient(recipient_id, @project&.group || @group),
to: User.find(recipient_id).notification_email_for(@project&.group || @group),
subject: subject("#{@note.noteable.title} (#{@note.noteable.reference_link_text})"),
'X-GitLab-NotificationReason' => reason
}

View File

@ -7,7 +7,7 @@ module Emails
@project = domain.project
mail(
to: recipient(recipient.id, @project.group),
to: recipient.notification_email_for(@project.group),
subject: subject("GitLab Pages domain '#{domain.domain}' has been enabled")
)
end
@ -17,7 +17,7 @@ module Emails
@project = domain.project
mail(
to: recipient(recipient.id, @project.group),
to: recipient.notification_email_for(@project.group),
subject: subject("GitLab Pages domain '#{domain.domain}' has been disabled")
)
end
@ -27,7 +27,7 @@ module Emails
@project = domain.project
mail(
to: recipient(recipient.id, @project.group),
to: recipient.notification_email_for(@project.group),
subject: subject("Verification succeeded for GitLab Pages domain '#{domain.domain}'")
)
end
@ -37,7 +37,7 @@ module Emails
@project = domain.project
mail(
to: recipient(recipient.id, @project.group),
to: recipient.notification_email_for(@project.group),
subject: subject("ACTION REQUIRED: Verification failed for GitLab Pages domain '#{domain.domain}'")
)
end

View File

@ -7,20 +7,20 @@ module Emails
@project = Project.find project_id
@target_url = project_url(@project)
@old_path_with_namespace = old_path_with_namespace
mail(to: recipient(user_id, @project.group),
mail(to: @user.notification_email_for(@project.group),
subject: subject("Project was moved"))
end
def project_was_exported_email(current_user, project)
@project = project
mail(to: recipient(current_user.id, project.group),
mail(to: current_user.notification_email_for(project.group),
subject: subject("Project was exported"))
end
def project_was_not_exported_email(current_user, project, errors)
@project = project
@errors = errors
mail(to: recipient(current_user.id, @project.group),
mail(to: current_user.notification_email_for(@project.group),
subject: subject("Project export error"))
end
@ -28,7 +28,7 @@ module Emails
@project = project
@user = user
mail(to: recipient(user.id, project.group), subject: subject("Project cleanup has completed"))
mail(to: user.notification_email_for(project.group), subject: subject("Project cleanup has completed"))
end
def repository_cleanup_failure_email(project, user, error)
@ -36,7 +36,7 @@ module Emails
@user = user
@error = error
mail(to: recipient(user.id, project.group), subject: subject("Project cleanup failure"))
mail(to: user.notification_email_for(project.group), subject: subject("Project cleanup failure"))
end
def repository_push_email(project_id, opts = {})

View File

@ -5,8 +5,9 @@ module Emails
def remote_mirror_update_failed_email(remote_mirror_id, recipient_id)
@remote_mirror = RemoteMirror.find_by_id(remote_mirror_id)
@project = @remote_mirror.project
user = User.find(recipient_id)
mail(to: recipient(recipient_id, @project.group), subject: subject('Remote mirror update failed'))
mail(to: user.notification_email_for(@project.group), subject: subject('Remote mirror update failed'))
end
end
end

View File

@ -71,20 +71,6 @@ class Notify < BaseMailer
address.format
end
# Look up a User's notification email for a particular context.
# Can look up by their ID or can accept a User object.
#
# recipient - User object OR a User ID
# notification_group - The parent group of the notification
#
# Returns a String containing the User's email address.
def recipient(recipient, notification_group = nil)
user = recipient if recipient.is_a?(User)
user ||= User.find(recipient)
user.notification_email_for(notification_group)
end
# Formats arguments into a String suitable for use as an email subject
#
# extra - Extra Strings to be inserted into the subject

View File

@ -245,7 +245,6 @@ class Project < ApplicationRecord
has_one :cluster_project, class_name: 'Clusters::Project'
has_many :clusters, through: :cluster_project, class_name: 'Clusters::Cluster'
has_many :cluster_ingresses, through: :clusters, source: :application_ingress, class_name: 'Clusters::Applications::Ingress'
has_many :kubernetes_namespaces, class_name: 'Clusters::KubernetesNamespace'
has_many :prometheus_metrics

View File

@ -17,7 +17,7 @@ module Issues
end
def can_add_link?
available? && !link_in_issue_description?
can? && !link_in_issue_description?
end
def remove_link
@ -29,7 +29,7 @@ module Issues
end
def can_remove_link?
available? && link_in_issue_description?
can? && link_in_issue_description?
end
def parse_link(link)
@ -75,14 +75,6 @@ module Issues
issue_description[/(\S+)\z/, 1]
end
def available?
feature_enabled? && can?
end
def feature_enabled?
Feature.enabled?(:issue_zoom_integration, project)
end
def can?
current_user.can?(:update_issue, project)
end

View File

@ -43,6 +43,7 @@ module Projects
shared_runners_enabled: @project.shared_runners_enabled,
namespace_id: target_namespace.id,
fork_network: fork_network,
ci_config_path: @project.ci_config_path,
# We need to set ci_default_git_depth to 0 for the forked project when
# @project.ci_default_git_depth is nil in order to keep the same behaviour
# and not get ProjectCiCdSetting::DEFAULT_GIT_DEPTH set on create

View File

@ -21,7 +21,7 @@
- if any_dashboard_nav_link?([:groups, :milestones, :activity, :snippets])
%li.header-more.dropdown
%a{ href: "#", data: { toggle: "dropdown" } }
%a{ href: "#", data: { toggle: "dropdown", qa_selector: 'more_dropdown' } }
= _('More')
= sprite_icon('angle-down', css_class: 'caret-down')
.dropdown-menu
@ -42,7 +42,7 @@
- if dashboard_nav_link?(:snippets)
= nav_link(controller: 'dashboard/snippets') do
= link_to dashboard_snippets_path, class: 'dashboard-shortcuts-snippets qa-snippets-link' do
= link_to dashboard_snippets_path, class: 'dashboard-shortcuts-snippets', data: { qa_selector: 'snippets_link' } do
= _('Snippets')
= render_if_exists 'layouts/nav/sidebar/analytics_more_link'

View File

@ -0,0 +1,5 @@
---
title: Refactor email notification code
merge_request: 17741
author: briankabiro
type: other

View File

@ -0,0 +1,6 @@
---
title: 'Fix Issue: WebIDE asks for confirmation to leave the page when committing
and creating a new MR'
merge_request: 17671
author:
type: fixed

View File

@ -0,0 +1,5 @@
---
title: Allow users to add and remove zoom rooms on an issue using quick action commands
merge_request:
author:
type: added

View File

@ -0,0 +1,5 @@
---
title: Preserve custom .gitlab-ci.yml config path when forking.
merge_request: 17817
author: Mathieu Parent
type: added

View File

@ -0,0 +1,5 @@
---
title: Provides internationalization support to chart legends
merge_request: 16832
author:
type: added

View File

@ -0,0 +1,5 @@
---
title: Expose web_url for epics on API
merge_request: 17380
author:
type: added

View File

@ -67,7 +67,7 @@ Example response:
"title": "Accusamus iste et ullam ratione voluptatem omnis debitis dolor est.",
"description": "Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.",
"state": "opened",
"web_edit_url": "http://localhost:3001/groups/test/-/epics/4",
"web_url": "http://localhost:3001/groups/test/-/epics/4",
"reference": "&4",
"author": {
"id": 10,
@ -122,7 +122,7 @@ Example response:
"title": "Ea cupiditate dolores ut vero consequatur quasi veniam voluptatem et non.",
"description": "Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.",
"state": "opened",
"web_edit_url": "http://localhost:3001/groups/test/-/epics/5",
"web_url": "http://localhost:3001/groups/test/-/epics/5",
"reference": "&5",
"author":{
"id": 7,
@ -188,7 +188,7 @@ Example response:
"title": "Epic",
"description": "Epic description",
"state": "opened",
"web_edit_url": "http://localhost:3001/groups/test/-/epics/6",
"web_url": "http://localhost:3001/groups/test/-/epics/5",
"reference": "&6",
"author": {
"name" : "Alexandra Bashirian",
@ -255,7 +255,7 @@ Example response:
"title": "New Title",
"description": "Epic description",
"state": "opened",
"web_edit_url": "http://localhost:3001/groups/test/-/epics/6",
"web_url": "http://localhost:3001/groups/test/-/epics/5",
"reference": "&6",
"author": {
"name" : "Alexandra Bashirian",

View File

@ -64,8 +64,8 @@ The following quick actions are applicable to descriptions, discussions and thre
| `/create_merge_request <branch name>` | ✓ | | | Create a new merge request starting from the current issue |
| `/relate #issue1 #issue2` | ✓ | | | Mark issues as related **(STARTER)** |
| `/move <path/to/project>` | ✓ | | | Move this issue to another project |
| `/zoom <Zoom URL>` | ✓ | | | Add Zoom meeting to this issue. ([Introduced in GitLab 12.3](https://gitlab.com/gitlab-org/gitlab/merge_requests/16609). Must be enabled by feature flag `issue_zoom_integration` for self-hosted. [Feature flag to be removed and available by default in 12.4.](https://gitlab.com/gitlab-org/gitlab/issues/32133)) |
| `/remove_zoom` | ✓ | | | Remove Zoom meeting from this issue. ([Introduced in GitLab 12.3](https://gitlab.com/gitlab-org/gitlab/merge_requests/16609). Must be enabled by feature flag `issue_zoom_integration` for self-hosted. [Feature flag to be removed and available by default in 12.4.](https://gitlab.com/gitlab-org/gitlab/issues/32133)) |
| `/zoom <Zoom URL>` | ✓ | | | Add Zoom meeting to this issue. |
| `/remove_zoom` | ✓ | | | Remove Zoom meeting from this issue. |
| `/target_branch <local branch name>` | | ✓ | | Set target branch |
| `/wip` | | ✓ | | Toggle the Work In Progress status |
| `/approve` | | ✓ | | Approve the merge request |

View File

@ -9858,6 +9858,9 @@ msgstr ""
msgid "Metrics|Add metric"
msgstr ""
msgid "Metrics|Avg"
msgstr ""
msgid "Metrics|Check out the CI/CD documentation on deploying to an environment"
msgstr ""
@ -9888,6 +9891,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
msgid "Metrics|Max"
msgstr ""
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
@ -15833,7 +15839,7 @@ msgstr ""
msgid "There was an error fetching configuration for charts"
msgstr ""
msgid "There was an error fetching the form data"
msgid "There was an error fetching data for the form"
msgstr ""
msgid "There was an error gathering the chart data"

View File

@ -1,42 +0,0 @@
{
"qa/specs/features/browser_ui/1_manage/project/add_project_member_spec.rb": 9.697327613830566,
"qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb": 46.54227638244629,
"qa/specs/features/browser_ui/1_manage/project/create_project_spec.rb": 10.214765310287476,
"qa/specs/features/browser_ui/1_manage/project/view_project_activity_spec.rb": 7.882027864456177,
"qa/specs/features/api/3_create/repository/files_spec.rb": 5.015859127044678,
"qa/specs/features/browser_ui/2_plan/issue/filter_issue_comments_spec.rb": 12.772682905197144,
"qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb": 29.76174831390381,
"qa/specs/features/browser_ui/3_create/repository/use_ssh_key_spec.rb": 22.800872802734375,
"qa/specs/features/browser_ui/1_manage/login/register_spec.rb": 22.320587396621704,
"qa/specs/features/api/1_manage/users_spec.rb": 0.6089541912078857,
"qa/specs/features/browser_ui/3_create/repository/clone_spec.rb": 0.9618203639984131,
"qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb": 13.403101205825806,
"qa/specs/features/browser_ui/non_devops/performance_bar_spec.rb": 8.810423135757446,
"qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb": 7.730542182922363,
"qa/specs/features/browser_ui/3_create/repository/add_ssh_key_spec.rb": 16.18057894706726,
"qa/specs/features/browser_ui/4_verify/ci_variable/add_ci_variable_spec.rb": 8.31815505027771,
"qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb": 9.48607873916626,
"qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb": 19.552733182907104,
"qa/specs/features/browser_ui/3_create/wiki/create_edit_clone_push_wiki_spec.rb": 17.273863554000854,
"qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb": 8.281434059143066,
"qa/specs/features/browser_ui/3_create/repository/create_edit_delete_file_via_web_spec.rb": 18.047621726989746,
"qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb": 7.422840595245361,
"qa/specs/features/browser_ui/1_manage/login/log_in_spec.rb": 3.438166856765747,
"qa/specs/features/browser_ui/4_verify/runner/register_runner_spec.rb": 18.679633855819702,
"qa/specs/features/browser_ui/3_create/merge_request/squash_merge_request_spec.rb": 27.943300485610962,
"qa/specs/features/browser_ui/3_create/repository/add_list_delete_branches_spec.rb": 39.17585229873657,
"qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb": 40.09336972236633,
"qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb": 3.705310821533203,
"qa/specs/features/browser_ui/3_create/snippet/create_snippet_spec.rb": 5.812374591827393,
"qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb": 92.46774697303772,
"qa/specs/features/browser_ui/1_manage/project/import_github_repo_spec.rb": 100.28881478309631,
"qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb": 23.710937023162842,
"qa/specs/features/browser_ui/1_manage/login/login_via_oauth_spec.rb": 20.58603596687317,
"qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb": 25.460349321365356,
"qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb": 19.459370374679565,
"qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb": 6.731764793395996,
"qa/specs/features/browser_ui/6_release/deploy_key/add_deploy_key_spec.rb": 15.342933893203735,
"qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb": 11.280649185180664,
"qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb": 57.48992609977722,
"qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb": 32.5517954826355
}

View File

@ -1,4 +1,12 @@
{
"qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb": 4.835599899291992,
"qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb": 69.85551619529724,
"qa/specs/features/ee/browser_ui/2_plan/epic/promote_issue_to_epic_spec.rb": 14.649160623550415,
"qa/specs/features/ee/browser_ui/2_plan/scoped_labels/editing_scoped_labels_spec.rb": 12.790381908416748,
"qa/specs/features/ee/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb": 0.00018262863159179688,
"qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb": 59.73394823074341,
"qa/specs/features/ee/browser_ui/3_create/repository/code_owners_spec.rb": 26.39240026473999,
"qa/specs/features/ee/browser_ui/secure/create_project_with_secure_spec.rb": 46.76790499687195,
"qa/specs/features/api/1_manage/users_spec.rb": 0.6089541912078857,
"qa/specs/features/api/3_create/repository/files_spec.rb": 5.015859127044678,
"qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb": 1.0199065208435059,

View File

@ -20,6 +20,7 @@ module QA
element :admin_area_link
element :projects_dropdown, required: true
element :groups_dropdown, required: true
element :more_dropdown, required: true
element :snippets_link
end
@ -52,6 +53,13 @@ module QA
end
end
def go_to_snippets
within_top_menu do
click_element :more_dropdown
click_element :snippets_link
end
end
def click_admin_area
within_top_menu { click_element :admin_area_link }
end
@ -80,10 +88,6 @@ module QA
end
end
def click_snippets_link
click_element :snippets_link
end
def search_for(term)
fill_element :search_term_field, "#{term}\n"
end

View File

@ -7,7 +7,7 @@ module QA
Runtime::Browser.visit(:gitlab, Page::Main::Login)
Page::Main::Login.perform(&:sign_in_using_credentials)
Page::Main::Menu.perform(&:click_snippets_link)
Page::Main::Menu.perform(&:go_to_snippets)
Resource::Snippet.fabricate_via_browser_ui! do |snippet|
snippet.title = 'Snippet title'

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe ApplicationHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe AutoDevopsHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe AvatarsHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe AwardEmojiHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe BlameHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe BlobHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe BoardsHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe BroadcastMessagesHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe ButtonHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe CalendarHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe CiStatusHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe CommitsHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe ComponentsHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe DashboardHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe DeferScriptTagHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe EmailsHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe EventsHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe ExploreHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe FormHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe GitHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe GitlabRoutingHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe GraphHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe HooksHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe IconsHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe ImportHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe InstanceConfigurationHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require "spec_helper"
describe IssuesHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe LabelsHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe MarkupHelper do
@ -408,12 +410,12 @@ describe MarkupHelper do
it 'preserves a link href when link text is truncated' do
text = 'The quick brown fox jumped over the lazy dog' # 44 chars
input = "#{text}#{text}#{text} " # 133 chars
link_url = 'http://example.com/foo/bar/baz' # 30 chars
input << link_url
object = create_object(input)
input = "#{text}#{text}#{text} #{link_url}" # 163 chars
expected_link_text = 'http://example...</a>'
object = create_object(input)
expect(first_line_in_markdown(object, attribute, 150, project: project)).to match(link_url)
expect(first_line_in_markdown(object, attribute, 150, project: project)).to match(expected_link_text)
end

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe MembersHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe MilestonesHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe MilestonesRoutingHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe NamespacesHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe NavHelper, :do_not_mock_admin_mode do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require "spec_helper"
describe NotesHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe NotificationsHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe PageLayoutHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe PaginationHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe PreferencesHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe ProfilesHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe RssHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe RunnersHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe SearchHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe SidekiqHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe SnippetsHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require "spec_helper"
describe StorageHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe SubmoduleHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe TabHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe TimeHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require "spec_helper"
describe TodosHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe TreeHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require "spec_helper"
describe UserCalloutsHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe UsersHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe VersionCheckHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe VisibilityLevelHelper do

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper'
describe WikiHelper do

View File

@ -473,18 +473,16 @@ describe('IDE commit module actions', () => {
});
it('resets changed files before redirecting', done => {
visitUrl = visitUrl.and.callFake(() => {
expect(store.state.stagedFiles.length).toBe(0);
done();
});
spyOn(eventHub, '$on');
store.state.commit.commitAction = '3';
store
.dispatch('commit/commitChanges')
.then(() => {
expect(store.state.stagedFiles.length).toBe(0);
done();
})
.catch(done.fail);
store.dispatch('commit/commitChanges').catch(done.fail);
});
});
});

View File

@ -60,6 +60,18 @@ describe('Time series component', () => {
expect(timeSeriesChart.find('.js-graph-widgets').text()).toBe(mockWidgets);
});
it('allows user to override max value label text using prop', () => {
timeSeriesChart.setProps({ legendMaxText: 'legendMaxText' });
expect(timeSeriesChart.props().legendMaxText).toBe('legendMaxText');
});
it('allows user to override average value label text using prop', () => {
timeSeriesChart.setProps({ legendAverageText: 'averageText' });
expect(timeSeriesChart.props().legendAverageText).toBe('averageText');
});
describe('methods', () => {
describe('formatTooltipText', () => {
const mockDate = deploymentData[0].created_at;

View File

@ -250,7 +250,6 @@ project:
- cluster
- clusters
- cluster_project
- cluster_ingresses
- creator
- cycle_analytics_stages
- group

View File

@ -38,12 +38,6 @@ describe Issues::ZoomLinkService do
end
end
shared_context 'feature flag disabled' do
before do
stub_feature_flags(issue_zoom_integration: false)
end
end
shared_context 'insufficient permissions' do
before do
project.add_guest(user)
@ -78,11 +72,6 @@ describe Issues::ZoomLinkService do
include_examples 'cannot add link'
end
context 'when feature flag is disabled' do
include_context 'feature flag disabled'
include_examples 'cannot add link'
end
context 'with insufficient permissions' do
include_context 'insufficient permissions'
include_examples 'cannot add link'
@ -113,12 +102,6 @@ describe Issues::ZoomLinkService do
it { is_expected.to eq(true) }
context 'when feature flag is disabled' do
include_context 'feature flag disabled'
it { is_expected.to eq(false) }
end
context 'with insufficient permissions' do
include_context 'insufficient permissions'
@ -152,11 +135,6 @@ describe Issues::ZoomLinkService do
.to eq(issue.description.delete_suffix("\n\n#{zoom_link}"))
end
context 'when feature flag is disabled' do
include_context 'feature flag disabled'
include_examples 'cannot remove link'
end
context 'with insufficient permissions' do
include_context 'insufficient permissions'
include_examples 'cannot remove link'
@ -187,12 +165,6 @@ describe Issues::ZoomLinkService do
it { is_expected.to eq(true) }
context 'when feature flag is disabled' do
include_context 'feature flag disabled'
it { is_expected.to eq(false) }
end
context 'with insufficient permissions' do
include_context 'insufficient permissions'

View File

@ -50,6 +50,7 @@ describe Projects::ForkService do
it { expect(to_project.star_count).to be_zero }
it { expect(to_project.description).to eq(@from_project.description) }
it { expect(to_project.avatar.file).to be_exists }
it { expect(to_project.ci_config_path).to eq(@from_project.ci_config_path) }
# This test is here because we had a bug where the from-project lost its
# avatar after being forked.
@ -215,7 +216,8 @@ describe Projects::ForkService do
@project = create(:project, :repository,
creator_id: @group_owner.id,
star_count: 777,
description: 'Wow, such a cool project!')
description: 'Wow, such a cool project!',
ci_config_path: 'debian/salsa-ci.yml')
@group = create(:group)
@group.add_user(@group_owner, GroupMember::OWNER)
@group.add_user(@developer, GroupMember::DEVELOPER)
@ -228,14 +230,15 @@ describe Projects::ForkService do
it 'group owner successfully forks project into the group' do
to_project = fork_project(@project, @group_owner, @opts)
expect(to_project).to be_persisted
expect(to_project.errors).to be_empty
expect(to_project.owner).to eq(@group)
expect(to_project.namespace).to eq(@group)
expect(to_project.name).to eq(@project.name)
expect(to_project.path).to eq(@project.path)
expect(to_project.description).to eq(@project.description)
expect(to_project.star_count).to be_zero
expect(to_project).to be_persisted
expect(to_project.errors).to be_empty
expect(to_project.owner).to eq(@group)
expect(to_project.namespace).to eq(@group)
expect(to_project.name).to eq(@project.name)
expect(to_project.path).to eq(@project.path)
expect(to_project.description).to eq(@project.description)
expect(to_project.ci_config_path).to eq(@project.ci_config_path)
expect(to_project.star_count).to be_zero
end
end

View File

@ -373,6 +373,8 @@ module GpgHelpers
KEY
end
# passphrase for secret key is:
# 4a45718624c9939a043471d83d1eda7c
def secret_key
<<~SECRET
-----BEGIN PGP PRIVATE KEY BLOCK-----

View File

@ -45,14 +45,6 @@ shared_examples 'zoom quick actions' do
expect(page).to have_content('Failed to add a Zoom meeting')
expect(page).not_to have_content(zoom_link)
end
context 'when feature flag disabled' do
before do
stub_feature_flags(issue_zoom_integration: false)
end
include_examples 'skip silently'
end
end
context 'with Zoom link not at the end of the issue description' do
@ -92,14 +84,6 @@ shared_examples 'zoom quick actions' do
expect(page).to have_content('Zoom meeting removed')
expect(issue.reload.description).to eq("Text with #{zoom_link}")
end
context 'when feature flag disabled' do
before do
stub_feature_flags(issue_zoom_integration: false)
end
include_examples 'skip silently'
end
end
context 'with a Zoom link not at the end of the description' do