Commit dfc2d02c authored by Simon Knox's avatar Simon Knox

Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ce into 62966-embed-zoom-call-in-issue-mvc

parents 14f27102 ae853dba
...@@ -69,6 +69,16 @@ export default { ...@@ -69,6 +69,16 @@ export default {
required: false, required: false,
default: false, default: false,
}, },
dismissEndpoint: {
type: String,
required: false,
default: '',
},
showSuggestPopover: {
type: Boolean,
required: false,
default: false,
},
}, },
data() { data() {
const treeWidth = const treeWidth =
...@@ -141,7 +151,12 @@ export default { ...@@ -141,7 +151,12 @@ export default {
showTreeList: 'adjustView', showTreeList: 'adjustView',
}, },
mounted() { mounted() {
this.setBaseConfig({ endpoint: this.endpoint, projectPath: this.projectPath }); this.setBaseConfig({
endpoint: this.endpoint,
projectPath: this.projectPath,
dismissEndpoint: this.dismissEndpoint,
showSuggestPopover: this.showSuggestPopover,
});
if (this.shouldShow) { if (this.shouldShow) {
this.fetchData(); this.fetchData();
......
...@@ -42,6 +42,7 @@ export default { ...@@ -42,6 +42,7 @@ export default {
noteableData: state => state.notes.noteableData, noteableData: state => state.notes.noteableData,
diffViewType: state => state.diffs.diffViewType, diffViewType: state => state.diffs.diffViewType,
}), }),
...mapState('diffs', ['showSuggestPopover']),
...mapGetters('diffs', ['getDiffFileByHash']), ...mapGetters('diffs', ['getDiffFileByHash']),
...mapGetters([ ...mapGetters([
'isLoggedIn', 'isLoggedIn',
...@@ -80,7 +81,12 @@ export default { ...@@ -80,7 +81,12 @@ export default {
} }
}, },
methods: { methods: {
...mapActions('diffs', ['cancelCommentForm', 'assignDiscussionsToDiff', 'saveDiffDiscussion']), ...mapActions('diffs', [
'cancelCommentForm',
'assignDiscussionsToDiff',
'saveDiffDiscussion',
'setSuggestPopoverDismissed',
]),
handleCancelCommentForm(shouldConfirm, isDirty) { handleCancelCommentForm(shouldConfirm, isDirty) {
if (shouldConfirm && isDirty) { if (shouldConfirm && isDirty) {
const msg = s__('Notes|Are you sure you want to cancel creating this comment?'); const msg = s__('Notes|Are you sure you want to cancel creating this comment?');
...@@ -125,11 +131,13 @@ export default { ...@@ -125,11 +131,13 @@ export default {
:line="line" :line="line"
:help-page-path="helpPagePath" :help-page-path="helpPagePath"
:diff-file="diffFile" :diff-file="diffFile"
:show-suggest-popover="showSuggestPopover"
save-button-title="Comment" save-button-title="Comment"
class="diff-comment-form" class="diff-comment-form"
@handleFormUpdateAddToReview="addToReview" @handleFormUpdateAddToReview="addToReview"
@cancelForm="handleCancelCommentForm" @cancelForm="handleCancelCommentForm"
@handleFormUpdate="handleSaveNote" @handleFormUpdate="handleSaveNote"
@handleSuggestDismissed="setSuggestPopoverDismissed"
/> />
</div> </div>
</template> </template>
...@@ -72,6 +72,8 @@ export default function initDiffsApp(store) { ...@@ -72,6 +72,8 @@ export default function initDiffsApp(store) {
currentUser: JSON.parse(dataset.currentUserData) || {}, currentUser: JSON.parse(dataset.currentUserData) || {},
changesEmptyStateIllustration: dataset.changesEmptyStateIllustration, changesEmptyStateIllustration: dataset.changesEmptyStateIllustration,
isFluidLayout: parseBoolean(dataset.isFluidLayout), isFluidLayout: parseBoolean(dataset.isFluidLayout),
dismissEndpoint: dataset.dismissEndpoint,
showSuggestPopover: parseBoolean(dataset.showSuggestPopover),
}; };
}, },
computed: { computed: {
...@@ -99,6 +101,8 @@ export default function initDiffsApp(store) { ...@@ -99,6 +101,8 @@ export default function initDiffsApp(store) {
shouldShow: this.activeTab === 'diffs', shouldShow: this.activeTab === 'diffs',
changesEmptyStateIllustration: this.changesEmptyStateIllustration, changesEmptyStateIllustration: this.changesEmptyStateIllustration,
isFluidLayout: this.isFluidLayout, isFluidLayout: this.isFluidLayout,
dismissEndpoint: this.dismissEndpoint,
showSuggestPopover: this.showSuggestPopover,
}, },
}); });
}, },
......
...@@ -36,8 +36,8 @@ import { ...@@ -36,8 +36,8 @@ import {
import { diffViewerModes } from '~/ide/constants'; import { diffViewerModes } from '~/ide/constants';
export const setBaseConfig = ({ commit }, options) => { export const setBaseConfig = ({ commit }, options) => {
const { endpoint, projectPath } = options; const { endpoint, projectPath, dismissEndpoint, showSuggestPopover } = options;
commit(types.SET_BASE_CONFIG, { endpoint, projectPath }); commit(types.SET_BASE_CONFIG, { endpoint, projectPath, dismissEndpoint, showSuggestPopover });
}; };
export const fetchDiffFiles = ({ state, commit }) => { export const fetchDiffFiles = ({ state, commit }) => {
...@@ -455,5 +455,17 @@ export const toggleFullDiff = ({ dispatch, getters, state }, filePath) => { ...@@ -455,5 +455,17 @@ export const toggleFullDiff = ({ dispatch, getters, state }, filePath) => {
export const setFileCollapsed = ({ commit }, { filePath, collapsed }) => export const setFileCollapsed = ({ commit }, { filePath, collapsed }) =>
commit(types.SET_FILE_COLLAPSED, { filePath, collapsed }); commit(types.SET_FILE_COLLAPSED, { filePath, collapsed });
export const setSuggestPopoverDismissed = ({ commit, state }) =>
axios
.post(state.dismissEndpoint, {
feature_name: 'suggest_popover_dismissed',
})
.then(() => {
commit(types.SET_SHOW_SUGGEST_POPOVER);
})
.catch(() => {
createFlash(s__('MergeRequest|Error dismissing suggestion popover. Please try again.'));
});
// prevent babel-plugin-rewire from generating an invalid default during karma tests // prevent babel-plugin-rewire from generating an invalid default during karma tests
export default () => {}; export default () => {};
...@@ -28,4 +28,6 @@ export default () => ({ ...@@ -28,4 +28,6 @@ export default () => ({
renderTreeList: true, renderTreeList: true,
showWhitespace: true, showWhitespace: true,
fileFinderVisible: false, fileFinderVisible: false,
dismissEndpoint: '',
showSuggestPopover: true,
}); });
...@@ -33,3 +33,5 @@ export const SET_HIDDEN_VIEW_DIFF_FILE_LINES = 'SET_HIDDEN_VIEW_DIFF_FILE_LINES' ...@@ -33,3 +33,5 @@ export const SET_HIDDEN_VIEW_DIFF_FILE_LINES = 'SET_HIDDEN_VIEW_DIFF_FILE_LINES'
export const SET_CURRENT_VIEW_DIFF_FILE_LINES = 'SET_CURRENT_VIEW_DIFF_FILE_LINES'; export const SET_CURRENT_VIEW_DIFF_FILE_LINES = 'SET_CURRENT_VIEW_DIFF_FILE_LINES';
export const ADD_CURRENT_VIEW_DIFF_FILE_LINES = 'ADD_CURRENT_VIEW_DIFF_FILE_LINES'; export const ADD_CURRENT_VIEW_DIFF_FILE_LINES = 'ADD_CURRENT_VIEW_DIFF_FILE_LINES';
export const TOGGLE_DIFF_FILE_RENDERING_MORE = 'TOGGLE_DIFF_FILE_RENDERING_MORE'; export const TOGGLE_DIFF_FILE_RENDERING_MORE = 'TOGGLE_DIFF_FILE_RENDERING_MORE';
export const SET_SHOW_SUGGEST_POPOVER = 'SET_SHOW_SUGGEST_POPOVER';
...@@ -11,8 +11,8 @@ import * as types from './mutation_types'; ...@@ -11,8 +11,8 @@ import * as types from './mutation_types';
export default { export default {
[types.SET_BASE_CONFIG](state, options) { [types.SET_BASE_CONFIG](state, options) {
const { endpoint, projectPath } = options; const { endpoint, projectPath, dismissEndpoint, showSuggestPopover } = options;
Object.assign(state, { endpoint, projectPath }); Object.assign(state, { endpoint, projectPath, dismissEndpoint, showSuggestPopover });
}, },
[types.SET_LOADING](state, isLoading) { [types.SET_LOADING](state, isLoading) {
...@@ -302,4 +302,7 @@ export default { ...@@ -302,4 +302,7 @@ export default {
file.renderingLines = !file.renderingLines; file.renderingLines = !file.renderingLines;
}, },
[types.SET_SHOW_SUGGEST_POPOVER](state) {
state.showSuggestPopover = false;
},
}; };
...@@ -77,6 +77,11 @@ export default { ...@@ -77,6 +77,11 @@ export default {
required: false, required: false,
default: '', default: '',
}, },
showSuggestPopover: {
type: Boolean,
required: false,
default: false,
},
}, },
data() { data() {
let updatedNoteBody = this.noteBody; let updatedNoteBody = this.noteBody;
...@@ -247,6 +252,8 @@ export default { ...@@ -247,6 +252,8 @@ export default {
:can-suggest="canSuggest" :can-suggest="canSuggest"
:add-spacing-classes="false" :add-spacing-classes="false"
:help-page-path="helpPagePath" :help-page-path="helpPagePath"
:show-suggest-popover="showSuggestPopover"
@handleSuggestDismissed="() => $emit('handleSuggestDismissed')"
> >
<textarea <textarea
id="note_note" id="note_note"
...@@ -303,7 +310,7 @@ export default { ...@@ -303,7 +310,7 @@ export default {
{{ __('Add comment now') }} {{ __('Add comment now') }}
</button> </button>
<button <button
class="btn btn-cancel note-edit-cancel js-close-discussion-note-form" class="btn note-edit-cancel js-close-discussion-note-form"
type="button" type="button"
@click="cancelHandler()" @click="cancelHandler()"
> >
......
...@@ -67,6 +67,11 @@ export default { ...@@ -67,6 +67,11 @@ export default {
required: false, required: false,
default: '', default: '',
}, },
showSuggestPopover: {
type: Boolean,
required: false,
default: false,
},
}, },
data() { data() {
return { return {
...@@ -194,8 +199,10 @@ export default { ...@@ -194,8 +199,10 @@ export default {
:preview-markdown="previewMarkdown" :preview-markdown="previewMarkdown"
:line-content="lineContent" :line-content="lineContent"
:can-suggest="canSuggest" :can-suggest="canSuggest"
:show-suggest-popover="showSuggestPopover"
@preview-markdown="showPreviewTab" @preview-markdown="showPreviewTab"
@write-markdown="showWriteTab" @write-markdown="showWriteTab"
@handleSuggestDismissed="() => $emit('handleSuggestDismissed')"
/> />
<div v-show="!previewMarkdown" class="md-write-holder"> <div v-show="!previewMarkdown" class="md-write-holder">
<div class="zen-backdrop"> <div class="zen-backdrop">
......
<script> <script>
import $ from 'jquery'; import $ from 'jquery';
import { GlTooltipDirective } from '@gitlab/ui'; import { GlPopover, GlButton, GlTooltipDirective } from '@gitlab/ui';
import ToolbarButton from './toolbar_button.vue'; import ToolbarButton from './toolbar_button.vue';
import Icon from '../icon.vue'; import Icon from '../icon.vue';
...@@ -8,6 +8,8 @@ export default { ...@@ -8,6 +8,8 @@ export default {
components: { components: {
ToolbarButton, ToolbarButton,
Icon, Icon,
GlPopover,
GlButton,
}, },
directives: { directives: {
GlTooltip: GlTooltipDirective, GlTooltip: GlTooltipDirective,
...@@ -27,6 +29,11 @@ export default { ...@@ -27,6 +29,11 @@ export default {
required: false, required: false,
default: true, default: true,
}, },
showSuggestPopover: {
type: Boolean,
required: false,
default: false,
},
}, },
computed: { computed: {
mdTable() { mdTable() {
...@@ -70,6 +77,9 @@ export default { ...@@ -70,6 +77,9 @@ export default {
this.$emit('write-markdown'); this.$emit('write-markdown');
}, },
handleSuggestDismissed() {
this.$emit('handleSuggestDismissed');
},
}, },
}; };
</script> </script>
...@@ -93,66 +103,92 @@ export default { ...@@ -93,66 +103,92 @@ export default {
</button> </button>
</li> </li>
<li :class="{ active: !previewMarkdown }" class="md-header-toolbar"> <li :class="{ active: !previewMarkdown }" class="md-header-toolbar">
<toolbar-button tag="**" :button-title="__('Add bold text')" icon="bold" /> <div class="d-inline-block">
<toolbar-button tag="*" :button-title="__('Add italic text')" icon="italic" /> <toolbar-button tag="**" :button-title="__('Add bold text')" icon="bold" />
<toolbar-button <toolbar-button tag="*" :button-title="__('Add italic text')" icon="italic" />
:prepend="true" <toolbar-button
tag="> " :prepend="true"
:button-title="__('Insert a quote')" tag="> "
icon="quote" :button-title="__('Insert a quote')"
/> icon="quote"
<toolbar-button tag="`" tag-block="```" :button-title="__('Insert code')" icon="code" /> />
<toolbar-button </div>
tag="[{text}](url)" <div class="d-inline-block ml-md-2 ml-0">
tag-select="url" <template v-if="canSuggest">
:button-title="__('Add a link')" <toolbar-button
icon="link" ref="suggestButton"
/> :tag="mdSuggestion"
<toolbar-button :prepend="true"
:prepend="true" :button-title="__('Insert suggestion')"
tag="* " :cursor-offset="4"
:button-title="__('Add a bullet list')" :tag-content="lineContent"
icon="list-bulleted" icon="doc-code"
/> class="qa-suggestion-btn"
<toolbar-button @click="handleSuggestDismissed"
:prepend="true" />
tag="1. " <gl-popover
:button-title="__('Add a numbered list')" v-if="showSuggestPopover"
icon="list-numbered" :target="() => $refs.suggestButton"
/> :css-classes="['diff-suggest-popover']"
<toolbar-button placement="bottom"
:prepend="true" :show="showSuggestPopover"
tag="* [ ] " >
:button-title="__('Add a task list')" <strong>{{ __('New! Suggest changes directly') }}</strong>
icon="task-done" <p class="mb-2">
/> {{ __('Suggest code changes which are immediately applied. Try it out!') }}
<toolbar-button </p>
:tag="mdTable" <gl-button variant="primary" size="sm" @click="handleSuggestDismissed">
:prepend="true" {{ __('Got it') }}
:button-title="__('Add a table')" </gl-button>
icon="table" </gl-popover>
/> </template>
<toolbar-button <toolbar-button tag="`" tag-block="```" :button-title="__('Insert code')" icon="code" />
v-if="canSuggest" <toolbar-button
:tag="mdSuggestion" tag="[{text}](url)"
:prepend="true" tag-select="url"
:button-title="__('Insert suggestion')" :button-title="__('Add a link')"
:cursor-offset="4" icon="link"
:tag-content="lineContent" />
icon="doc-code" </div>
class="qa-suggestion-btn" <div class="d-inline-block ml-md-2 ml-0">
/> <toolbar-button
<button :prepend="true"
v-gl-tooltip tag="* "
:aria-label="__('Go full screen')" :button-title="__('Add a bullet list')"
class="toolbar-btn toolbar-fullscreen-btn js-zen-enter" icon="list-bulleted"
data-container="body" />
tabindex="-1" <toolbar-button
:title="__('Go full screen')" :prepend="true"
type="button" tag="1. "
> :button-title="__('Add a numbered list')"
<icon name="screen-full" /> icon="list-numbered"
</button> />
<toolbar-button
:prepend="true"
tag="* [ ] "
:button-title="__('Add a task list')"
icon="task-done"
/>
<toolbar-button
:tag="mdTable"
:prepend="true"
:button-title="__('Add a table')"
icon="table"
/>
</div>
<div class="d-inline-block ml-md-2 ml-0">
<button
v-gl-tooltip
:aria-label="__('Go full screen')"
class="toolbar-btn toolbar-fullscreen-btn js-zen-enter"
data-container="body"
tabindex="-1"
:title="__('Go full screen')"
type="button"
>
<icon name="screen-full" />
</button>
</div>
</li> </li>
</ul> </ul>
</div> </div>
......
...@@ -66,6 +66,7 @@ export default { ...@@ -66,6 +66,7 @@ export default {
class="toolbar-btn js-md" class="toolbar-btn js-md"
tabindex="-1" tabindex="-1"
data-container="body" data-container="body"
@click="() => $emit('click')"
> >
<icon :name="icon" /> <icon :name="icon" />
</button> </button>
......
...@@ -7,3 +7,7 @@ export const PREV = s__('Pagination|Prev'); ...@@ -7,3 +7,7 @@ export const PREV = s__('Pagination|Prev');
export const NEXT = s__('Pagination|Next'); export const NEXT = s__('Pagination|Next');
export const FIRST = s__('Pagination|« First'); export const FIRST = s__('Pagination|« First');
export const LAST = s__('Pagination|Last »'); export const LAST = s__('Pagination|Last »');
export const LABEL_FIRST_PAGE = s__('Pagination|Go to first page');
export const LABEL_PREV_PAGE = s__('Pagination|Go to previous page');
export const LABEL_NEXT_PAGE = s__('Pagination|Go to next page');
export const LABEL_LAST_PAGE = s__('Pagination|Go to last page');
<script> <script>
import { GlPagination } from '@gitlab/ui'; import { GlPagination } from '@gitlab/ui';
import { s__ } from '../../locale'; import {
PREV,
NEXT,
LABEL_FIRST_PAGE,
LABEL_PREV_PAGE,
LABEL_NEXT_PAGE,
LABEL_LAST_PAGE,
} from '~/vue_shared/components/pagination/constants';
export default { export default {
components: { components: {
...@@ -16,23 +23,27 @@ export default { ...@@ -16,23 +23,27 @@ export default {
required: true, required: true,
}, },
}, },
firstText: s__('Pagination|« First'), prevText: PREV,
prevText: s__('Pagination|Prev'), nextText: NEXT,
nextText: s__('Pagination|Next'), labelFirstPage: LABEL_FIRST_PAGE,
lastText: s__('Pagination|Last »'), labelPrevPage: LABEL_PREV_PAGE,
labelNextPage: LABEL_NEXT_PAGE,
labelLastPage: LABEL_LAST_PAGE,
}; };
</script> </script>
<template> <template>
<gl-pagination <gl-pagination
v-bind="$attrs" v-bind="$attrs"
:change="change" :value="pageInfo.page"
:page="pageInfo.page"
:per-page="pageInfo.perPage" :per-page="pageInfo.perPage"
:total-items="pageInfo.total" :total-items="pageInfo.total"
:first-text="$options.firstText"
:prev-text="$options.prevText" :prev-text="$options.prevText"
:next-text="$options.nextText" :next-text="$options.nextText"
:last-text="$options.lastText" :label-first-page="$options.labelFirstPage"
:label-prev-page="$options.labelPrevPage"
:label-next-page="$options.labelNextPage"
:label-last-page="$options.labelLastPage"
@input="change"
/> />
</template> </template>
...@@ -154,11 +154,9 @@ ...@@ -154,11 +154,9 @@
} }
.toolbar-fullscreen-btn { .toolbar-fullscreen-btn {
margin-left: $gl-padding;
margin-right: -5px; margin-right: -5px;
@include media-breakpoint-down(xs) { @include media-breakpoint-down(xs) {
margin-left: 0;
margin-right: 0; margin-right: 0;
} }
} }
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
position: -webkit-sticky; position: -webkit-sticky;
position: sticky; position: sticky;
top: $mr-file-header-top; top: $mr-file-header-top;
z-index: 102; z-index: 220;
&::before { &::before {
content: ''; content: '';
...@@ -1122,3 +1122,15 @@ table.code { ...@@ -1122,3 +1122,15 @@ table.code {
outline: 0; outline: 0;
} }
} }
.diff-suggest-popover {
&.popover {
width: 250px;
min-width: 250px;
z-index: 210;
}
.popover-header {
display: none;
}
}
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
module UserCalloutsHelper module UserCalloutsHelper
GKE_CLUSTER_INTEGRATION = 'gke_cluster_integration'.freeze GKE_CLUSTER_INTEGRATION = 'gke_cluster_integration'.freeze
GCP_SIGNUP_OFFER = 'gcp_signup_offer'.freeze GCP_SIGNUP_OFFER = 'gcp_signup_offer'.freeze
SUGGEST_POPOVER_DISMISSED = 'suggest_popover_dismissed'.freeze
def show_gke_cluster_integration_callout?(project) def show_gke_cluster_integration_callout?(project)
can?(current_user, :create_cluster, project) && can?(current_user, :create_cluster, project) &&
...@@ -20,6 +21,10 @@ module UserCalloutsHelper ...@@ -20,6 +21,10 @@ module UserCalloutsHelper
def render_dashboard_gold_trial(user) def render_dashboard_gold_trial(user)
end end
def show_suggest_popover?
!user_dismissed?(SUGGEST_POPOVER_DISMISSED)
end
private private
def user_dismissed?(feature_name) def user_dismissed?(feature_name)
......
...@@ -10,7 +10,8 @@ module UserCalloutEnums ...@@ -10,7 +10,8 @@ module UserCalloutEnums
{ {
gke_cluster_integration: 1, gke_cluster_integration: 1,
gcp_signup_offer: 2, gcp_signup_offer: 2,
cluster_security_warning: 3 cluster_security_warning: 3,
suggest_popover_dismissed: 4
} }
end end
end end
...@@ -80,7 +80,9 @@ ...@@ -80,7 +80,9 @@
current_user_data: UserSerializer.new(project: @project).represent(current_user, {}, MergeRequestUserEntity).to_json, current_user_data: UserSerializer.new(project: @project).represent(current_user, {}, MergeRequestUserEntity).to_json,
project_path: project_path(@merge_request.project), project_path: project_path(@merge_request.project),
changes_empty_state_illustration: image_path('illustrations/merge_request_changes_empty.svg'), changes_empty_state_illustration: image_path('illustrations/merge_request_changes_empty.svg'),
is_fluid_layout: fluid_layout.to_s } } is_fluid_layout: fluid_layout.to_s,
dismiss_endpoint: user_callouts_path,
show_suggest_popover: show_suggest_popover?.to_s } }
.mr-loading-status .mr-loading-status
= spinner = spinner
......
---
title: Added diff suggestion feature discovery popover
merge_request:
author:
type: added
...@@ -69,6 +69,9 @@ This can be done in two ways: ...@@ -69,6 +69,9 @@ This can be done in two ways:
- Manually specifying the job definition. Not recommended unless using GitLab - Manually specifying the job definition. Not recommended unless using GitLab
11.8 and earlier. 11.8 and earlier.
The License Management settings can be changed through environment variables by using the
[`variables`](../../../ci/yaml/README.md#variables) parameter in `.gitlab-ci.yml`. These variables are documented in the [License Management documentation](https://gitlab.com/gitlab-org/security-products/license-management#settings).
### Including the provided template ### Including the provided template
NOTE: **Note:** NOTE: **Note:**
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -13,7 +13,7 @@ msgstr "" ...@@ -13,7 +13,7 @@ msgstr ""
"X-Crowdin-Project: gitlab-ee\n" "X-Crowdin-Project: gitlab-ee\n"
"X-Crowdin-Language: es-ES\n" "X-Crowdin-Language: es-ES\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n" "X-Crowdin-File: /master/locale/gitlab.pot\n"
"PO-Revision-Date: 2019-06-13 13:22\n" "PO-Revision-Date: 2019-06-14 10:17\n"
msgid " Please sign in." msgid " Please sign in."
msgstr " Por favor, inicie sesión." msgstr " Por favor, inicie sesión."
...@@ -5042,6 +5042,9 @@ msgstr "Se ha producido un error al cargar los datos de la rama. Por favor, vuel ...@@ -5042,6 +5042,9 @@ msgstr "Se ha producido un error al cargar los datos de la rama. Por favor, vuel
msgid "Error loading branches." msgid "Error loading branches."
msgstr "Error al cargar ramas." msgstr "Error al cargar ramas."
msgid "Error loading burndown chart data"
msgstr ""
msgid "Error loading file viewer." msgid "Error loading file viewer."
msgstr "Se ha producido un error al cargar el visor de archivos." msgstr "Se ha producido un error al cargar el visor de archivos."
...@@ -10839,12 +10842,18 @@ msgid_plural "Refreshing in %d seconds to show the updated status..." ...@@ -10839,12 +10842,18 @@ msgid_plural "Refreshing in %d seconds to show the updated status..."
msgstr[0] "Actualizar en un segundo para mostrar el estado actualizado..." msgstr[0] "Actualizar en un segundo para mostrar el estado actualizado..."
msgstr[1] "Actualizar en %d segundos para mostrar el estado actualizado..." msgstr[1] "Actualizar en %d segundos para mostrar el estado actualizado..."
msgid "Regenerate instance ID"
msgstr ""
msgid "Regenerate key" msgid "Regenerate key"
msgstr "Regenerar clave" msgstr "Regenerar clave"
msgid "Regenerate recovery codes" msgid "Regenerate recovery codes"
msgstr "Regenerar los códigos de recuperación" msgstr "Regenerar los códigos de recuperación"
msgid "Regenerating the instance ID can break integration depending on the client you are using."
msgstr ""
msgid "Regex pattern" msgid "Regex pattern"
msgstr "Patrón regex" msgstr "Patrón regex"
...@@ -14183,6 +14192,9 @@ msgstr "URL" ...@@ -14183,6 +14192,9 @@ msgstr "URL"
msgid "Unable to connect to server: %{error}" msgid "Unable to connect to server: %{error}"
msgstr "Imposible conectar con el servidor: %{error}" msgstr "Imposible conectar con el servidor: %{error}"
msgid "Unable to generate new instance ID"
msgstr ""
msgid "Unable to load the diff. %{button_try_again}" msgid "Unable to load the diff. %{button_try_again}"
msgstr "No se puede cargar el fichero diff. %{button_try_again}" msgstr "No se puede cargar el fichero diff. %{button_try_again}"
...@@ -14456,9 +14468,6 @@ msgstr "Cuotas de uso" ...@@ -14456,9 +14468,6 @@ msgstr "Cuotas de uso"
msgid "UsageQuota|Usage of group resources across the projects in the %{strong_start}%{group_name}%{strong_end} group" msgid "UsageQuota|Usage of group resources across the projects in the %{strong_start}%{group_name}%{strong_end} group"
msgstr "Uso de los recursos del grupo a través de los proyectos en el grupo %{strong_start}%{group_name}%{strong_end}" msgstr "Uso de los recursos del grupo a través de los proyectos en el grupo %{strong_start}%{group_name}%{strong_end}"
msgid "UsageQuota|Usage quotas"
msgstr "Cuotas de uso"
msgid "UsageQuota|Usage since" msgid "UsageQuota|Usage since"
msgstr "Uso desde" msgstr "Uso desde"
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -4761,6 +4761,9 @@ msgstr "" ...@@ -4761,6 +4761,9 @@ msgstr ""
msgid "Google authentication is not %{link_to_documentation}. Ask your GitLab administrator if you want to use this service." msgid "Google authentication is not %{link_to_documentation}. Ask your GitLab administrator if you want to use this service."
msgstr "" msgstr ""
msgid "Got it"
msgstr ""
msgid "Got it!" msgid "Got it!"
msgstr "" msgstr ""
...@@ -6156,6 +6159,9 @@ msgstr "" ...@@ -6156,6 +6159,9 @@ msgstr ""
msgid "MergeRequest| %{paragraphStart}changed the description %{descriptionChangedTimes} times %{timeDifferenceMinutes}%{paragraphEnd}" msgid "MergeRequest| %{paragraphStart}changed the description %{descriptionChangedTimes} times %{timeDifferenceMinutes}%{paragraphEnd}"
msgstr "" msgstr ""
msgid "MergeRequest|Error dismissing suggestion popover. Please try again."
msgstr ""
msgid "MergeRequest|Error loading full diff. Please try again." msgid "MergeRequest|Error loading full diff. Please try again."
msgstr "" msgstr ""
...@@ -6512,6 +6518,9 @@ msgstr "" ...@@ -6512,6 +6518,9 @@ msgstr ""
msgid "New users set to external" msgid "New users set to external"
msgstr "" msgstr ""
msgid "New! Suggest changes directly"
msgstr ""
msgid "New..." msgid "New..."
msgstr "" msgstr ""
...@@ -6919,6 +6928,18 @@ msgstr "" ...@@ -6919,6 +6928,18 @@ msgstr ""
msgid "Pages getting started guide" msgid "Pages getting started guide"
msgstr "" msgstr ""
msgid "Pagination|Go to first page"
msgstr ""
msgid "Pagination|Go to last page"
msgstr ""
msgid "Pagination|Go to next page"
msgstr ""
msgid "Pagination|Go to previous page"
msgstr ""
msgid "Pagination|Last »" msgid "Pagination|Last »"
msgstr "" msgstr ""
...@@ -9646,6 +9667,9 @@ msgstr "" ...@@ -9646,6 +9667,9 @@ msgstr ""
msgid "Successfully unlocked" msgid "Successfully unlocked"
msgstr "" msgstr ""
msgid "Suggest code changes which are immediately applied. Try it out!"
msgstr ""
msgid "Suggested change" msgid "Suggested change"
msgstr "" msgstr ""
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -13,7 +13,7 @@ msgstr "" ...@@ -13,7 +13,7 @@ msgstr ""
"X-Crowdin-Project: gitlab-ee\n" "X-Crowdin-Project: gitlab-ee\n"
"X-Crowdin-Language: ja\n" "X-Crowdin-Language: ja\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n" "X-Crowdin-File: /master/locale/gitlab.pot\n"
"PO-Revision-Date: 2019-06-13 13:20\n" "PO-Revision-Date: 2019-06-14 10:20\n"
msgid " Please sign in." msgid " Please sign in."
msgstr " サインインしてください。" msgstr " サインインしてください。"
...@@ -4993,6 +4993,9 @@ msgstr "ブランチ データの読み込み中にエラーが発生しまし ...@@ -4993,6 +4993,9 @@ msgstr "ブランチ データの読み込み中にエラーが発生しまし
msgid "Error loading branches." msgid "Error loading branches."
msgstr "ブランチのロードに失敗しました。" msgstr "ブランチのロードに失敗しました。"
msgid "Error loading burndown chart data"
msgstr ""
msgid "Error loading file viewer." msgid "Error loading file viewer."
msgstr "ファイルビューワーの読み込みに失敗しました。" msgstr "ファイルビューワーの読み込みに失敗しました。"
...@@ -10782,12 +10785,18 @@ msgid "Refreshing in a second to show the updated status..." ...@@ -10782,12 +10785,18 @@ msgid "Refreshing in a second to show the updated status..."
msgid_plural "Refreshing in %d seconds to show the updated status..." msgid_plural "Refreshing in %d seconds to show the updated status..."
msgstr[0] "" msgstr[0] ""
msgid "Regenerate instance ID"
msgstr ""
msgid "Regenerate key" msgid "Regenerate key"
msgstr "" msgstr ""
msgid "Regenerate recovery codes" msgid "Regenerate recovery codes"
msgstr "" msgstr ""
msgid "Regenerating the instance ID can break integration depending on the client you are using."
msgstr ""
msgid "Regex pattern" msgid "Regex pattern"
msgstr "正規表現パターン" msgstr "正規表現パターン"
...@@ -14119,6 +14128,9 @@ msgstr "URL" ...@@ -14119,6 +14128,9 @@ msgstr "URL"
msgid "Unable to connect to server: %{error}" msgid "Unable to connect to server: %{error}"
msgstr "" msgstr ""
msgid "Unable to generate new instance ID"
msgstr ""
msgid "Unable to load the diff. %{button_try_again}" msgid "Unable to load the diff. %{button_try_again}"
msgstr "差分を読み込むことができません。%{button_try_again}" msgstr "差分を読み込むことができません。%{button_try_again}"
...@@ -14392,9 +14404,6 @@ msgstr "" ...@@ -14392,9 +14404,6 @@ msgstr ""
msgid "UsageQuota|Usage of group resources across the projects in the %{strong_start}%{group_name}%{strong_end} group" msgid "UsageQuota|Usage of group resources across the projects in the %{strong_start}%{group_name}%{strong_end} group"
msgstr "" msgstr ""
msgid "UsageQuota|Usage quotas"
msgstr ""
msgid "UsageQuota|Usage since" msgid "UsageQuota|Usage since"
msgstr "" msgstr ""
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -13,7 +13,7 @@ msgstr "" ...@@ -13,7 +13,7 @@ msgstr ""
"X-Crowdin-Project: gitlab-ee\n" "X-Crowdin-Project: gitlab-ee\n"
"X-Crowdin-Language: sk\n" "X-Crowdin-Language: sk\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n" "X-Crowdin-File: /master/locale/gitlab.pot\n"
"PO-Revision-Date: 2019-06-13 13:21\n" "PO-Revision-Date: 2019-06-14 10:17\n"
msgid " Please sign in." msgid " Please sign in."
msgstr "" msgstr ""
...@@ -5140,6 +5140,9 @@ msgstr "" ...@@ -5140,6 +5140,9 @@ msgstr ""
msgid "Error loading branches." msgid "Error loading branches."
msgstr "" msgstr ""
msgid "Error loading burndown chart data"
msgstr ""
msgid "Error loading file viewer." msgid "Error loading file viewer."
msgstr "" msgstr ""
...@@ -10953,12 +10956,18 @@ msgstr[1] "" ...@@ -10953,12 +10956,18 @@ msgstr[1] ""
msgstr[2] "" msgstr[2] ""
msgstr[3] "" msgstr[3] ""
msgid "Regenerate instance ID"
msgstr ""
msgid "Regenerate key" msgid "Regenerate key"
msgstr "" msgstr ""
msgid "Regenerate recovery codes" msgid "Regenerate recovery codes"
msgstr "" msgstr ""
msgid "Regenerating the instance ID can break integration depending on the client you are using."
msgstr ""
msgid "Regex pattern" msgid "Regex pattern"
msgstr "" msgstr ""
...@@ -14311,6 +14320,9 @@ msgstr "" ...@@ -14311,6 +14320,9 @@ msgstr ""
msgid "Unable to connect to server: %{error}" msgid "Unable to connect to server: %{error}"
msgstr "" msgstr ""
msgid "Unable to generate new instance ID"
msgstr ""
msgid "Unable to load the diff. %{button_try_again}" msgid "Unable to load the diff. %{button_try_again}"
msgstr "" msgstr ""
...@@ -14584,9 +14596,6 @@ msgstr "" ...@@ -14584,9 +14596,6 @@ msgstr ""
msgid "UsageQuota|Usage of group resources across the projects in the %{strong_start}%{group_name}%{strong_end} group" msgid "UsageQuota|Usage of group resources across the projects in the %{strong_start}%{group_name}%{strong_end} group"
msgstr "" msgstr ""
msgid "UsageQuota|Usage quotas"
msgstr ""
msgid "UsageQuota|Usage since" msgid "UsageQuota|Usage since"
msgstr "" msgstr ""
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -13,7 +13,7 @@ msgstr "" ...@@ -13,7 +13,7 @@ msgstr ""
"X-Crowdin-Project: gitlab-ee\n" "X-Crowdin-Project: gitlab-ee\n"
"X-Crowdin-Language: tr\n" "X-Crowdin-Language: tr\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n" "X-Crowdin-File: /master/locale/gitlab.pot\n"
"PO-Revision-Date: 2019-06-13 13:22\n" "PO-Revision-Date: 2019-06-14 10:18\n"
msgid " Please sign in." msgid " Please sign in."
msgstr " Lütfen oturum açın." msgstr " Lütfen oturum açın."
...@@ -5042,6 +5042,9 @@ msgstr "" ...@@ -5042,6 +5042,9 @@ msgstr ""
msgid "Error loading branches." msgid "Error loading branches."
msgstr "" msgstr ""
msgid "Error loading burndown chart data"
msgstr ""
msgid "Error loading file viewer." msgid "Error loading file viewer."
msgstr "" msgstr ""
...@@ -10839,12 +10842,18 @@ msgid_plural "Refreshing in %d seconds to show the updated status..." ...@@ -10839,12 +10842,18 @@ msgid_plural "Refreshing in %d seconds to show the updated status..."
msgstr[0] "Güncellenmiş durumu göstermek için bir saniye içinde yenilenecek..." msgstr[0] "Güncellenmiş durumu göstermek için bir saniye içinde yenilenecek..."
msgstr[1] "Güncellenmiş durumu göstermek için %d saniye içinde yenilenecek..." msgstr[1] "Güncellenmiş durumu göstermek için %d saniye içinde yenilenecek..."
msgid "Regenerate instance ID"
msgstr ""
msgid "Regenerate key" msgid "Regenerate key"
msgstr "" msgstr ""
msgid "Regenerate recovery codes" msgid "Regenerate recovery codes"
msgstr "" msgstr ""
msgid "Regenerating the instance ID can break integration depending on the client you are using."
msgstr ""
msgid "Regex pattern" msgid "Regex pattern"
msgstr "" msgstr ""
...@@ -14183,6 +14192,9 @@ msgstr "" ...@@ -14183,6 +14192,9 @@ msgstr ""
msgid "Unable to connect to server: %{error}" msgid "Unable to connect to server: %{error}"
msgstr "" msgstr ""
msgid "Unable to generate new instance ID"
msgstr ""
msgid "Unable to load the diff. %{button_try_again}" msgid "Unable to load the diff. %{button_try_again}"
msgstr "" msgstr ""
...@@ -14456,9 +14468,6 @@ msgstr "" ...@@ -14456,9 +14468,6 @@ msgstr ""
msgid "UsageQuota|Usage of group resources across the projects in the %{strong_start}%{group_name}%{strong_end} group" msgid "UsageQuota|Usage of group resources across the projects in the %{strong_start}%{group_name}%{strong_end} group"
msgstr "" msgstr ""
msgid "UsageQuota|Usage quotas"
msgstr ""
msgid "UsageQuota|Usage since" msgid "UsageQuota|Usage since"
msgstr "" msgstr ""
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -125,7 +125,7 @@ describe 'Dashboard Groups page', :js do ...@@ -125,7 +125,7 @@ describe 'Dashboard Groups page', :js do
end end
it 'loads results for next page' do it 'loads results for next page' do
expect(page).to have_selector('.gl-pagination .page-item a[role=menuitemradio]', count: 2) expect(page).to have_selector('.gl-pagination .page-item a.page-link', count: 3)
# Check first page # Check first page
expect(page).to have_content(group2.full_name) expect(page).to have_content(group2.full_name)
...@@ -134,7 +134,7 @@ describe 'Dashboard Groups page', :js do ...@@ -134,7 +134,7 @@ describe 'Dashboard Groups page', :js do
expect(page).not_to have_selector("#group-#{group.id}") expect(page).not_to have_selector("#group-#{group.id}")
# Go to next page # Go to next page
find('.gl-pagination .page-item:not(.active) a[role=menuitemradio]').click find('.gl-pagination .page-item:last-of-type a.page-link').click
wait_for_requests wait_for_requests
......
...@@ -32,7 +32,7 @@ describe 'Issue markdown toolbar', :js do ...@@ -32,7 +32,7 @@ describe 'Issue markdown toolbar', :js do
find('.js-main-target-form #note-body') find('.js-main-target-form #note-body')
page.evaluate_script('document.querySelectorAll(".js-main-target-form #note-body")[0].setSelectionRange(4, 50)') page.evaluate_script('document.querySelectorAll(".js-main-target-form #note-body")[0].setSelectionRange(4, 50)')
find('.toolbar-btn:nth-child(2)').click all('.toolbar-btn')[1].click
expect(find('#note-body')[:value]).to eq("test\n*underline*\n") expect(find('#note-body')[:value]).to eq("test\n*underline*\n")
end end
......
...@@ -141,7 +141,7 @@ describe 'Merge request > User posts notes', :js do ...@@ -141,7 +141,7 @@ describe 'Merge request > User posts notes', :js do
page.within('.current-note-edit-form') do page.within('.current-note-edit-form') do
expect(find('#note_note').value).to eq('This is the new content') expect(find('#note_note').value).to eq('This is the new content')
find('.js-md:first-child').click first('.js-md').click
expect(find('#note_note').value).to eq('This is the new content****') expect(find('#note_note').value).to eq('This is the new content****')
end end
end end
......
...@@ -28,6 +28,18 @@ describe 'User comments on a diff', :js do ...@@ -28,6 +28,18 @@ describe 'User comments on a diff', :js do
end end
context 'single suggestion note' do context 'single suggestion note' do
it 'hides suggestion popover' do
click_diff_line(find("[id='#{sample_compare.changes[1][:line_code]}']"))
expect(page).to have_selector('.diff-suggest-popover')
page.within('.diff-suggest-popover') do
click_button 'Got it'
end
expect(page).not_to have_selector('.diff-suggest-popover')
end
it 'suggestion is presented' do it 'suggestion is presented' do
click_diff_line(find("[id='#{sample_compare.changes[1][:line_code]}']")) click_diff_line(find("[id='#{sample_compare.changes[1][:line_code]}']"))
......
import Vue from 'vue'; import { mount, createLocalVue } from '@vue/test-utils';
import { GlPagination } from '@gitlab/ui';
import PaginationLinks from '~/vue_shared/components/pagination_links.vue'; import PaginationLinks from '~/vue_shared/components/pagination_links.vue';
import { s__ } from '~/locale'; import {
import mountComponent from '../../helpers/vue_mount_component_helper'; PREV,
NEXT,
LABEL_FIRST_PAGE,
LABEL_PREV_PAGE,
LABEL_NEXT_PAGE,
LABEL_LAST_PAGE,
} from '~/vue_shared/components/pagination/constants';
const localVue = createLocalVue();
describe('Pagination links component', () => { describe('Pagination links component', () => {
const paginationLinksComponent = Vue.extend(PaginationLinks);
const change = page => page;
const pageInfo = { const pageInfo = {
page: 3, page: 3,
perPage: 5, perPage: 5,
total: 30, total: 30,
}; };
const translations = { const translations = {
firstText: s__('Pagination|« First'), prevText: PREV,
prevText: s__('Pagination|Prev'), nextText: NEXT,
nextText: s__('Pagination|Next'), labelFirstPage: LABEL_FIRST_PAGE,
lastText: s__('Pagination|Last »'), labelPrevPage: LABEL_PREV_PAGE,
labelNextPage: LABEL_NEXT_PAGE,
labelLastPage: LABEL_LAST_PAGE,
}; };
let paginationLinks; let wrapper;
let glPagination; let glPagination;
let destinationComponent; let changeMock;
beforeEach(() => { const createComponent = () => {
paginationLinks = mountComponent(paginationLinksComponent, { changeMock = jest.fn();
change, wrapper = mount(PaginationLinks, {
pageInfo, propsData: {
change: changeMock,
pageInfo,
},
localVue,
sync: false,
}); });
[glPagination] = paginationLinks.$children; };
[destinationComponent] = glPagination.$children;
beforeEach(() => {
createComponent();
glPagination = wrapper.find(GlPagination);
}); });
afterEach(() => { afterEach(() => {
paginationLinks.$destroy(); wrapper.destroy();
}); });
it('should provide translated text to GitLab UI pagination', () => { it('should provide translated text to GitLab UI pagination', () => {
Object.entries(translations).forEach(entry => { Object.entries(translations).forEach(entry => {
expect(destinationComponent[entry[0]]).toBe(entry[1]); expect(glPagination.vm[entry[0]]).toBe(entry[1]);
}); });
}); });
it('should pass change to GitLab UI pagination', () => { it('should call change when page changes', () => {
expect(Object.is(glPagination.change, change)).toBe(true); wrapper.find('a').trigger('click');
expect(changeMock).toHaveBeenCalled();
}); });
it('should pass page from pageInfo to GitLab UI pagination', () => { it('should pass page from pageInfo to GitLab UI pagination', () => {
expect(destinationComponent.value).toBe(pageInfo.page); expect(glPagination.vm.value).toBe(pageInfo.page);
}); });
it('should pass per page from pageInfo to GitLab UI pagination', () => { it('should pass per page from pageInfo to GitLab UI pagination', () => {
expect(destinationComponent.perPage).toBe(pageInfo.perPage); expect(glPagination.vm.perPage).toBe(pageInfo.perPage);
}); });
it('should pass total items from pageInfo to GitLab UI pagination', () => { it('should pass total items from pageInfo to GitLab UI pagination', () => {
expect(destinationComponent.totalRows).toBe(pageInfo.total); expect(glPagination.vm.totalItems).toBe(pageInfo.total);
}); });
}); });
...@@ -37,6 +37,8 @@ describe('diffs/components/app', () => { ...@@ -37,6 +37,8 @@ describe('diffs/components/app', () => {
projectPath: 'namespace/project', projectPath: 'namespace/project',
currentUser: {}, currentUser: {},
changesEmptyStateIllustration: '', changesEmptyStateIllustration: '',
dismissEndpoint: '',
showSuggestPopover: true,
...props, ...props,
}, },
store, store,
......
...@@ -37,6 +37,7 @@ import actions, { ...@@ -37,6 +37,7 @@ import actions, {
toggleFullDiff, toggleFullDiff,
setFileCollapsed, setFileCollapsed,
setExpandedDiffLines, setExpandedDiffLines,
setSuggestPopoverDismissed,
} from '~/diffs/store/actions'; } from '~/diffs/store/actions';
import eventHub from '~/notes/event_hub'; import eventHub from '~/notes/event_hub';
import * as types from '~/diffs/store/mutation_types'; import * as types from '~/diffs/store/mutation_types';
...@@ -68,12 +69,19 @@ describe('DiffsStoreActions', () => { ...@@ -68,12 +69,19 @@ describe('DiffsStoreActions', () => {
it('should set given endpoint and project path', done => { it('should set given endpoint and project path', done => {
const endpoint = '/diffs/set/endpoint'; const endpoint = '/diffs/set/endpoint';
const projectPath = '/root/project'; const projectPath = '/root/project';
const dismissEndpoint = '/-/user_callouts';
const showSuggestPopover = false;
testAction( testAction(
setBaseConfig, setBaseConfig,
{ endpoint, projectPath }, { endpoint, projectPath, dismissEndpoint, showSuggestPopover },
{ endpoint: '', projectPath: '' }, { endpoint: '', projectPath: '', dismissEndpoint: '', showSuggestPopover: true },
[{ type: types.SET_BASE_CONFIG, payload: { endpoint, projectPath } }], [
{
type: types.SET_BASE_CONFIG,
payload: { endpoint, projectPath, dismissEndpoint, showSuggestPopover },
},
],
[], [],
done, done,
); );
...@@ -1080,4 +1088,30 @@ describe('DiffsStoreActions', () => { ...@@ -1080,4 +1088,30 @@ describe('DiffsStoreActions', () => {
); );
}); });
}); });
describe('setSuggestPopoverDismissed', () => {
it('commits SET_SHOW_SUGGEST_POPOVER', done => {
const state = { dismissEndpoint: `${gl.TEST_HOST}/-/user_callouts` };
const mock = new MockAdapter(axios);
mock.onPost(state.dismissEndpoint).reply(200, {});
spyOn(axios, 'post').and.callThrough();
testAction(
setSuggestPopoverDismissed,
null,
state,
[{ type: types.SET_SHOW_SUGGEST_POPOVER }],
[],
() => {
expect(axios.post).toHaveBeenCalledWith(state.dismissEndpoint, {
feature_name: 'suggest_popover_dismissed',
});
mock.restore();
done();
},
);
});
});
}); });
...@@ -850,4 +850,14 @@ describe('DiffsStoreMutations', () => { ...@@ -850,4 +850,14 @@ describe('DiffsStoreMutations', () => {
expect(file.renderingLines).toBe(false); expect(file.renderingLines).toBe(false);
}); });
}); });
describe('SET_SHOW_SUGGEST_POPOVER', () => {
it('sets showSuggestPopover to false', () => {
const state = { showSuggestPopover: true };
mutations[types.SET_SHOW_SUGGEST_POPOVER](state);
expect(state.showSuggestPopover).toBe(false);
});
});
}); });
...@@ -22,13 +22,13 @@ describe('Markdown field header component', () => { ...@@ -22,13 +22,13 @@ describe('Markdown field header component', () => {
'Add bold text', 'Add bold text',
'Add italic text', 'Add italic text',
'Insert a quote', 'Insert a quote',
'Insert suggestion',
'Insert code', 'Insert code',
'Add a link', 'Add a link',
'Add a bullet list', 'Add a bullet list',
'Add a numbered list', 'Add a numbered list',
'Add a task list', 'Add a task list',
'Add a table', 'Add a table',
'Insert suggestion',
'Go full screen', 'Go full screen',
]; ];
const elements = vm.$el.querySelectorAll('.toolbar-btn'); const elements = vm.$el.querySelectorAll('.toolbar-btn');
......
...@@ -705,10 +705,10 @@ ...@@ -705,10 +705,10 @@
resolved "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.64.0.tgz#1370bcbe9ca0ecc9fb919956cd4241bea090ddd3" resolved "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.64.0.tgz#1370bcbe9ca0ecc9fb919956cd4241bea090ddd3"
integrity sha512-y9p73NGDnQJc18Dtk0oJfgxedancBT6UceATcnZMceLV6iWylzdMbQWxCl4O2aBXwsAoCrLUJQ9jhRkbNicYNA== integrity sha512-y9p73NGDnQJc18Dtk0oJfgxedancBT6UceATcnZMceLV6iWylzdMbQWxCl4O2aBXwsAoCrLUJQ9jhRkbNicYNA==
"@gitlab/ui@^3.11.0": "@gitlab/ui@^4.0.0":
version "3.11.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/@gitlab/ui/-/ui-3.11.0.tgz#7bba82c893f47abbfe7995281dc0ce95290dcc4e" resolved "https://registry.yarnpkg.com/@gitlab/ui/-/ui-4.0.0.tgz#998a94d4ff91c5baa68d0591763e467a18293081"
integrity sha512-55Qxyj2wZILznZJUTUxY1SUuw028IgmP6ZyLd5XF3xk91HWSyq5/zrlr/qRTFGL1cABhxoBLScmXsnOc2CIO0w== integrity sha512-Z8T3xK3EV1eC2eBmnuO/cvcuLfH5TskGJsc2Hdxar+iUVxACbzs3bfjpFjslVHCCGzSRnewZCoRPO7GJO3miIg==
dependencies: dependencies:
"@babel/standalone" "^7.0.0" "@babel/standalone" "^7.0.0"
"@gitlab/vue-toasted" "^1.2.1" "@gitlab/vue-toasted" "^1.2.1"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment