Commit c4449495 authored by GitLab Bot's avatar GitLab Bot

Automatic merge of gitlab-org/gitlab master

parents df9f198f 492b02ee
......@@ -84,7 +84,7 @@ export default {
/>
</a>
<gl-loading-icon v-show="isLoading" :inline="true" />
<gl-loading-icon v-show="isLoading" size="sm" :inline="true" />
<div v-show="hasError" class="btn-group">
<div class="btn btn-default btn-sm disabled">
......
......@@ -221,7 +221,7 @@ export default {
:link-url="renderedLinkUrl"
/>
<p v-show="isRendering">
<gl-loading-icon :inline="true" />
<gl-loading-icon size="sm" :inline="true" />
</p>
<p v-show="!renderedBadge && !isRendering" class="disabled-content">
{{ s__('Badges|No image to preview') }}
......
......@@ -73,7 +73,7 @@ export default {
data-testid="delete-badge"
@click="updateBadgeInModal(badge)"
/>
<gl-loading-icon v-show="badge.isDeleting" :inline="true" />
<gl-loading-icon v-show="badge.isDeleting" size="sm" :inline="true" />
</div>
</div>
</div>
......
......@@ -163,7 +163,7 @@ export default {
><span data-testid="popover-title">{{ blockedLabel }}</span></template
>
<template v-if="loading">
<gl-loading-icon />
<gl-loading-icon size="sm" />
<p class="gl-mt-4 gl-mb-0 gl-font-small">{{ loadingMessage }}</p>
</template>
<template v-else>
......
......@@ -242,7 +242,7 @@ export default {
:aria-label="$options.i18n.loading"
data-testid="board_list_loading"
>
<gl-loading-icon />
<gl-loading-icon size="sm" />
</div>
<board-new-issue v-if="issueCreateFormVisible" :list="list" />
<board-new-epic v-if="epicCreateFormVisible" :list="list" />
......@@ -273,6 +273,7 @@ export default {
<li v-if="showCount" class="board-list-count gl-text-center" data-issue-id="-1">
<gl-loading-icon
v-if="loadingMore"
size="sm"
:label="$options.i18n.loadingMoreboardItems"
data-testid="count-loading-icon"
/>
......
......@@ -429,7 +429,7 @@ export default {
data-qa-selector="board_list_cards_area"
>
<div v-if="loading" class="board-list-loading text-center" :aria-label="__('Loading issues')">
<gl-loading-icon />
<gl-loading-icon size="sm" />
</div>
<board-new-issue v-if="list.type !== 'closed' && showIssueForm" :list="list" />
<ul
......@@ -450,7 +450,7 @@ export default {
:disabled="disabled"
/>
<li v-if="showCount" class="board-list-count text-center" data-issue-id="-1">
<gl-loading-icon v-show="list.loadingMore" label="Loading more issues" />
<gl-loading-icon v-show="list.loadingMore" size="sm" label="Loading more issues" />
<span v-if="list.issues.length === list.issuesSize">{{ __('Showing all issues') }}</span>
<span v-else>{{ paginatedIssueText }}</span>
</li>
......
......@@ -327,7 +327,7 @@ export default {
:class="scrollFadeClass"
></div>
<gl-loading-icon v-if="loading" />
<gl-loading-icon v-if="loading" size="sm" />
<div v-if="canAdminBoard">
<gl-dropdown-divider />
......
......@@ -316,7 +316,7 @@ export default {
:class="scrollFadeClass"
></div>
<gl-loading-icon v-if="loading" />
<gl-loading-icon v-if="loading" size="sm" />
<div v-if="canAdminBoard">
<gl-dropdown-divider />
......
......@@ -126,7 +126,7 @@ export default {
v-show="groupProjectsFlags.isLoading"
data-testid="dropdown-text-loading-icon"
>
<gl-loading-icon class="gl-mx-auto" />
<gl-loading-icon class="gl-mx-auto" size="sm" />
</gl-dropdown-text>
<gl-dropdown-text
v-if="isFetchResultEmpty && !groupProjectsFlags.isLoading"
......
......@@ -136,7 +136,7 @@ export default {
{{ project.namespacedName }}
</gl-dropdown-item>
<gl-dropdown-text v-show="isFetching" data-testid="dropdown-text-loading-icon">
<gl-loading-icon class="gl-mx-auto" />
<gl-loading-icon class="gl-mx-auto" size="sm" />
</gl-dropdown-text>
<gl-dropdown-text v-if="isFetchResultEmpty && !isFetching" data-testid="empty-result-message">
<span class="gl-text-gray-500">{{ $options.i18n.emptySearchResult }}</span>
......
......@@ -93,7 +93,7 @@ export default {
<slot name="title">
<span data-testid="title">{{ title }}</span>
</slot>
<gl-loading-icon v-if="loading" inline class="gl-ml-2" />
<gl-loading-icon v-if="loading" size="sm" inline class="gl-ml-2" />
</span>
<gl-button
v-if="canUpdate"
......
......@@ -95,7 +95,7 @@ export default {
</li>
</ul>
</div>
<div class="dropdown-loading"><gl-loading-icon /></div>
<div class="dropdown-loading"><gl-loading-icon size="sm" /></div>
</div>
</div>
<span
......
......@@ -160,7 +160,7 @@ export default {
</li>
</ul>
</div>
<div class="dropdown-loading"><gl-loading-icon /></div>
<div class="dropdown-loading"><gl-loading-icon size="sm" /></div>
</div>
</div>
<span
......
......@@ -84,7 +84,7 @@ export default {
</li>
</ul>
</div>
<div class="dropdown-loading"><gl-loading-icon /></div>
<div class="dropdown-loading"><gl-loading-icon size="sm" /></div>
</div>
</div>
<span
......
......@@ -218,7 +218,7 @@ export default {
@input="debouncedValidateQuery"
/>
<span v-if="queryValidateInFlight" class="form-text text-muted">
<gl-loading-icon :inline="true" class="mr-1 align-middle" />
<gl-loading-icon size="sm" :inline="true" class="mr-1 align-middle" />
{{ s__('Metrics|Validating query') }}
</span>
<slot v-if="!queryValidateInFlight" name="valid-feedback">
......
......@@ -221,7 +221,7 @@ export default {
@click.stop="toggleResolvedStatus"
>
<gl-icon v-if="!isResolving" :name="resolveIconName" data-testid="resolve-icon" />
<gl-loading-icon v-else inline />
<gl-loading-icon v-else size="sm" inline />
</button>
</template>
<template v-if="discussion.resolved" #resolved-status>
......
......@@ -365,6 +365,7 @@ export default {
>
<gl-loading-icon
v-if="showLoadingIcon"
size="sm"
class="diff-content loading gl-my-0 gl-pt-3"
data-testid="loader-icon"
/>
......
......@@ -467,7 +467,7 @@ export default {
:disabled="diffFile.isLoadingFullFile"
@click="toggleFullDiff(diffFile.file_path)"
>
<gl-loading-icon v-if="diffFile.isLoadingFullFile" inline />
<gl-loading-icon v-if="diffFile.isLoadingFullFile" size="sm" inline />
{{ expandDiffToFullFileTitle }}
</gl-dropdown-item>
</template>
......
......@@ -111,7 +111,7 @@ export default {
</script>
<template>
<div class="js-deploy-board deploy-board">
<gl-loading-icon v-if="isLoading" class="loading-icon" />
<gl-loading-icon v-if="isLoading" size="sm" class="loading-icon" />
<template v-else>
<div v-if="canRenderDeployBoard" class="deploy-board-information gl-p-5">
<div class="deploy-board-information gl-w-full">
......
......@@ -80,7 +80,7 @@ export default {
<template #button-content>
<gl-icon name="play" />
<gl-icon name="chevron-down" />
<gl-loading-icon v-if="isLoading" />
<gl-loading-icon v-if="isLoading" size="sm" />
</template>
<gl-dropdown-item
v-for="(action, i) in actions"
......
......@@ -196,6 +196,7 @@ export default {
/>
<gl-loading-icon
v-if="isRotating"
size="sm"
class="gl-absolute gl-align-self-center gl-right-5 gl-mr-7"
/>
......
......@@ -80,7 +80,7 @@ export default {
@focus="fetchEnvironments"
@keyup="fetchEnvironments"
/>
<gl-loading-icon v-if="isLoading" />
<gl-loading-icon v-if="isLoading" size="sm" />
<gl-dropdown-item
v-for="environment in results"
v-else-if="results.length"
......
......@@ -76,7 +76,7 @@ export default {
@focus="fetchUserLists"
@keyup="fetchUserLists"
/>
<gl-loading-icon v-if="isLoading" />
<gl-loading-icon v-if="isLoading" size="sm" />
<gl-dropdown-item
v-for="list in userLists"
:key="list.id"
......
......@@ -101,7 +101,7 @@ export default {
<h4 class="gl-display-flex gl-align-items-center">
{{ __('Set up shared runner availability') }}
<gl-loading-icon v-if="isLoading" class="gl-ml-3" inline />
<gl-loading-icon v-if="isLoading" class="gl-ml-3" size="sm" inline />
</h4>
<section class="gl-mt-5">
......
......@@ -57,6 +57,6 @@ export default {
@primaryAction="doAction"
>
<span v-html="message.text"></span>
<gl-loading-icon v-show="isLoading" inline class="vertical-align-middle ml-1" />
<gl-loading-icon v-show="isLoading" size="sm" inline class="vertical-align-middle ml-1" />
</gl-alert>
</template>
......@@ -79,7 +79,7 @@ export default {
<gl-icon :name="collapseIcon" class="ide-stage-collapse-icon" />
</div>
<div v-show="!stage.isCollapsed" ref="jobList" class="card-body p-0">
<gl-loading-icon v-if="showLoadingIcon" />
<gl-loading-icon v-if="showLoadingIcon" size="sm" />
<template v-else>
<item v-for="job in stage.jobs" :key="job.id" :job="job" @clickViewLog="clickViewLog" />
</template>
......
......@@ -126,7 +126,11 @@ export default {
class="ide-navigator-location form-control bg-white"
readonly
/>
<gl-loading-icon v-if="loading" class="position-absolute ide-preview-loading-icon" />
<gl-loading-icon
v-if="loading"
size="sm"
class="position-absolute ide-preview-loading-icon"
/>
</div>
</header>
</template>
......@@ -93,7 +93,7 @@ export default {
<div class="d-flex flex-column flex-fill min-height-0 pr-3">
<div class="top-bar d-flex border-left-0 align-items-center">
<div v-if="loadingText" data-qa-selector="loading_container">
<gl-loading-icon :inline="true" />
<gl-loading-icon size="sm" :inline="true" />
<span>{{ loadingText }}</span>
</div>
<terminal-controls
......
......@@ -310,7 +310,7 @@ export default {
>
<gl-search-box-by-type v-model.trim="searchTerm" />
<gl-loading-icon v-if="isFetching" />
<gl-loading-icon v-if="isFetching" size="sm" />
<gl-dropdown-item
v-for="user in users"
......@@ -328,7 +328,7 @@ export default {
</template>
</gl-table>
<gl-loading-icon v-if="isInitialLoadingState" />
<gl-loading-icon v-if="isInitialLoadingState" size="sm" />
<gl-button
v-if="hasMoreUsers"
......
......@@ -20,7 +20,7 @@ export default {
<gl-filtered-search-token :config="config" v-bind="{ ...$attrs }" v-on="$listeners">
<template #suggestions>
<div class="m-1">
<gl-loading-icon v-if="config.loading" />
<gl-loading-icon v-if="config.loading" size="sm" />
<div v-else class="py-1 px-2 text-muted">
{{ config.noOptionsText }}
</div>
......
......@@ -202,7 +202,7 @@ export default {
<gl-dropdown-divider />
<template v-if="isLoading">
<gl-loading-icon />
<gl-loading-icon size="sm" />
<gl-dropdown-divider />
</template>
<template v-else-if="showNoResults">
......
......@@ -227,7 +227,7 @@ export default {
<template>
<div class="prometheus-alert-widget dropdown flex-grow-2 overflow-hidden">
<gl-loading-icon v-if="shouldShowLoadingIcon" :inline="true" />
<gl-loading-icon v-if="shouldShowLoadingIcon" :inline="true" size="sm" />
<span v-else-if="errorMessage" ref="alertErrorMessage" class="alert-error-message">{{
errorMessage
}}</span>
......
......@@ -197,7 +197,7 @@ export default {
<gl-dropdown-section-header>{{ __('Environment') }}</gl-dropdown-section-header>
<gl-search-box-by-type @input="debouncedEnvironmentsSearch" />
<gl-loading-icon v-if="environmentsLoading" :inline="true" />
<gl-loading-icon v-if="environmentsLoading" size="sm" :inline="true" />
<div v-else class="flex-fill overflow-auto">
<gl-dropdown-item
v-for="environment in filteredEnvironments"
......
......@@ -389,7 +389,7 @@ export default {
/>
<div class="flex-grow-1"></div>
<div v-if="graphDataIsLoading" class="mx-1 mt-1">
<gl-loading-icon />
<gl-loading-icon size="sm" />
</div>
<div
v-if="isContextualMenuShown"
......
......@@ -88,7 +88,7 @@ export default {
@change="formChange"
/>
<template #modal-ok>
<gl-loading-icon v-if="loading" inline color="light" />
<gl-loading-icon v-if="loading" size="sm" inline color="light" />
{{ okButtonText }}
</template>
</gl-modal>
......
......@@ -61,7 +61,7 @@ export default {
<div v-if="showPanels" ref="graph-group" class="card prometheus-panel">
<div class="card-header d-flex align-items-center">
<h4 class="flex-grow-1">{{ name }}</h4>
<gl-loading-icon v-if="isLoading" name="loading" />
<gl-loading-icon v-if="isLoading" size="sm" name="loading" />
<a
data-testid="group-toggle-button"
:aria-label="__('Toggle collapse')"
......
......@@ -216,6 +216,7 @@ export default {
<gl-loading-icon
v-if="showSpinner"
ref="spinner"
size="sm"
class="editing-spinner"
:label="__('Comment is being updated')"
/>
......
......@@ -132,7 +132,7 @@ export default {
@change="updateEvent($event, event)"
>
<strong>{{ event.name }}</strong
><gl-loading-icon v-if="event.loading" :inline="true" class="gl-ml-2" />
><gl-loading-icon v-if="event.loading" size="sm" :inline="true" class="gl-ml-2" />
</gl-form-checkbox>
</gl-form-group>
</template>
......
......@@ -475,7 +475,11 @@ export default {
>
</gl-sprintf>
</gl-alert>
<gl-loading-icon v-if="isContentEditorLoading" class="bordered-box gl-w-full gl-py-6" />
<gl-loading-icon
v-if="isContentEditorLoading"
size="sm"
class="bordered-box gl-w-full gl-py-6"
/>
<content-editor v-else :content-editor="contentEditor" />
<input id="wiki_content" v-model.trim="content" type="hidden" name="wiki[content]" />
</div>
......
......@@ -87,7 +87,7 @@ export default {
<template>
<div>
<template v-if="isLoading">
<gl-loading-icon inline />
<gl-loading-icon size="sm" inline />
{{ $options.i18n.loading }}
</template>
......
......@@ -161,7 +161,7 @@ export default {
:size="24"
css-classes="gl-top-0 gl-pr-2"
/>
<div v-else class="gl-pr-2"><gl-loading-icon inline /></div>
<div v-else class="gl-pr-2"><gl-loading-icon size="sm" inline /></div>
<div class="gl-display-flex gl-flex-direction-column gl-w-13">
<span class="gl-text-truncate" data-testid="downstream-title">
{{ downstreamTitle }}
......
......@@ -99,7 +99,7 @@ export default {
class="js-ci-action gl-ci-action-icon-container ci-action-icon-container ci-action-icon-wrapper gl-display-flex gl-align-items-center gl-justify-content-center"
@click.stop="onClickAction"
>
<gl-loading-icon v-if="isLoading" class="js-action-icon-loading" />
<gl-loading-icon v-if="isLoading" size="sm" class="js-action-icon-loading" />
<gl-icon v-else :name="actionIcon" class="gl-mr-0!" :aria-label="actionIcon" />
</gl-button>
</template>
......@@ -97,7 +97,7 @@ export default {
{{ $options.i18n.artifactsFetchErrorMessage }}
</gl-alert>
<gl-loading-icon v-if="isLoading" />
<gl-loading-icon v-if="isLoading" size="sm" />
<gl-dropdown-item
v-for="(artifact, i) in artifacts"
......
......@@ -120,7 +120,7 @@ export default {
<gl-icon :name="borderlessIcon" />
</span>
</template>
<gl-loading-icon v-if="isLoading" />
<gl-loading-icon v-if="isLoading" size="sm" />
<ul
v-else
class="js-builds-dropdown-list scrollable-menu"
......
......@@ -96,7 +96,7 @@ export default {
{{ $options.i18n.artifactsFetchErrorMessage }}
</gl-alert>
<gl-loading-icon v-if="isLoading" />
<gl-loading-icon v-if="isLoading" size="sm" />
<gl-alert v-else-if="!hasArtifacts" variant="info" :dismissible="false">
{{ $options.i18n.noArtifacts }}
......
......@@ -60,7 +60,7 @@ export default {
@input="searchBranches"
>
<template #suggestions>
<gl-loading-icon v-if="loading" />
<gl-loading-icon v-if="loading" size="sm" />
<template v-else>
<gl-filtered-search-suggestion
v-for="(branch, index) in branches"
......
......@@ -55,7 +55,7 @@ export default {
<template>
<gl-filtered-search-token v-bind="{ ...$props, ...$attrs }" v-on="$listeners" @input="searchTags">
<template #suggestions>
<gl-loading-icon v-if="loading" />
<gl-loading-icon v-if="loading" size="sm" />
<template v-else>
<gl-filtered-search-suggestion v-for="(tag, index) in tags" :key="index" :value="tag">
{{ tag }}
......
......@@ -98,7 +98,7 @@ export default {
}}</gl-filtered-search-suggestion>
<gl-dropdown-divider />
<gl-loading-icon v-if="loading" />
<gl-loading-icon v-if="loading" size="sm" />
<template v-else>
<gl-filtered-search-suggestion
v-for="user in users"
......
......@@ -99,7 +99,7 @@ export default {
{{ branch }}
</gl-dropdown-item>
<gl-dropdown-text v-show="isFetching" data-testid="dropdown-text-loading-icon">
<gl-loading-icon class="gl-mx-auto" />
<gl-loading-icon size="sm" class="gl-mx-auto" />
</gl-dropdown-text>
<gl-dropdown-text
v-if="!filteredResults.length && !isFetching"
......
......@@ -144,7 +144,7 @@ export default {
</span>
</template>
<template v-else>
<gl-loading-icon :inline="true" />
<gl-loading-icon size="sm" :inline="true" />
<span class="sr-only">{{ __('Fetching incoming email') }}</span>
</template>
......
......@@ -102,7 +102,12 @@ export default {
class="related-issues-loading-icon"
data-qa-selector="related_issues_loading_placeholder"
>
<gl-loading-icon ref="loadingIcon" label="Fetching linked issues" class="gl-mt-2" />
<gl-loading-icon
ref="loadingIcon"
size="sm"
label="Fetching linked issues"
class="gl-mt-2"
/>
</div>
<ul ref="list" :class="{ 'content-list': !canReorder }" class="related-items-list">
<li
......
......@@ -94,7 +94,7 @@ export default {
</div>
<div>
<div v-if="isFetchingMergeRequests" class="qa-related-merge-requests-loading-icon">
<gl-loading-icon label="Fetching related merge requests" class="py-2" />
<gl-loading-icon size="sm" label="Fetching related merge requests" class="py-2" />
</div>
<ul v-else class="content-list related-items-list">
<li v-for="mr in mergeRequests" :key="mr.id" class="list-item pt-0 pb-0">
......
......@@ -150,7 +150,7 @@ export default {
<template>
<div>
<gl-loading-icon v-if="isLoading" />
<gl-loading-icon v-if="isLoading" size="sm" />
<div v-if="blobInfo && !isLoading" class="file-holder">
<blob-header
:blob="blobInfo"
......
......@@ -99,7 +99,7 @@ export default {
<span class="dropdown-toggle-text gl-flex-grow-1 gl-text-truncate">
{{ selectedItem[name] }}
</span>
<gl-loading-icon v-if="loading" inline class="gl-mr-3" />
<gl-loading-icon v-if="loading" size="sm" inline class="gl-mr-3" />
<gl-button
v-if="!isSelected($options.ANY_OPTION)"
v-gl-tooltip
......
......@@ -47,7 +47,7 @@ export default {
<template>
<div class="hide-collapsed gl-line-height-20 gl-mb-2 gl-text-gray-900">
{{ assigneeTitle }}
<gl-loading-icon v-if="loading" inline class="align-bottom" />
<gl-loading-icon v-if="loading" size="sm" inline class="align-bottom" />
<a
v-if="editable"
class="js-sidebar-dropdown-toggle edit-link float-right"
......
......@@ -92,11 +92,11 @@ export default {
@click="onClickCollapsedIcon"
>
<gl-icon name="users" />
<gl-loading-icon v-if="loading" />
<gl-loading-icon v-if="loading" size="sm" />
<span v-else data-testid="collapsed-count"> {{ participantCount }} </span>
</div>
<div v-if="showParticipantLabel" class="title hide-collapsed gl-mb-2">
<gl-loading-icon v-if="loading" :inline="true" />
<gl-loading-icon v-if="loading" size="sm" :inline="true" />
{{ participantLabel }}
</div>
<div class="participants-list hide-collapsed">
......
......@@ -35,7 +35,7 @@ export default {
<template>
<div class="hide-collapsed gl-line-height-20 gl-mb-2 gl-text-gray-900">
{{ reviewerTitle }}
<gl-loading-icon v-if="loading" inline class="align-bottom" />
<gl-loading-icon v-if="loading" size="sm" inline class="align-bottom" />
<a
v-if="editable"
class="js-sidebar-dropdown-toggle edit-link float-right"
......
......@@ -181,7 +181,7 @@ export default {
</gl-dropdown-item>
</gl-dropdown>
<gl-loading-icon v-if="isUpdating" :inline="true" />
<gl-loading-icon v-if="isUpdating" size="sm" :inline="true" />
<severity-token v-else-if="!isDropdownShowing" :severity="selectedItem" />
</div>
......
......@@ -334,6 +334,7 @@ export default {
<gl-dropdown-divider />
<gl-loading-icon
v-if="$apollo.queries.attributesList.loading"
size="sm"
class="gl-py-4"
data-testid="loading-icon-dropdown"
/>
......
......@@ -117,9 +117,15 @@ export default {
{{ title }}
</span>
<slot name="title-extra"></slot>
<gl-loading-icon v-if="loading || initialLoading" inline class="gl-ml-2 hide-collapsed" />
<gl-loading-icon
v-if="loading || initialLoading"
size="sm"
inline
class="gl-ml-2 hide-collapsed"
/>
<gl-loading-icon
v-if="loading && isClassicSidebar"
size="sm"
inline
class="gl-mx-auto gl-my-0 hide-expanded"
/>
......
......@@ -196,7 +196,7 @@ export default {
class="sidebar-collapsed-icon"
@click="toggleSubscribed"
>
<gl-loading-icon v-if="isLoading" class="sidebar-item-icon is-active" />
<gl-loading-icon v-if="isLoading" size="sm" class="sidebar-item-icon is-active" />
<gl-icon v-else :name="notificationIcon" :size="16" class="sidebar-item-icon is-active" />
</span>
<div v-show="emailsDisabled" class="gl-mt-3 hide-collapsed gl-text-gray-500">
......
......@@ -200,7 +200,7 @@ export default {
/>
<div class="hide-collapsed gl-line-height-20 gl-text-gray-900">
{{ __('Time tracking') }}
<gl-loading-icon v-if="isTimeTrackingInfoLoading" inline />
<gl-loading-icon v-if="isTimeTrackingInfoLoading" size="sm" inline />
<div
v-if="!showHelpState"
data-testid="helpButton"
......
......@@ -85,6 +85,6 @@ export default {
:name="collapsedButtonIcon"
/>
<span v-show="!collapsed" class="issuable-todo-inner">{{ buttonLabel }}</span>
<gl-loading-icon v-show="isActionActive" :inline="true" />
<gl-loading-icon v-show="isActionActive" size="sm" :inline="true" />
</button>
</template>
......@@ -274,7 +274,7 @@ export default {
data-qa-selector="delete_snippet_button"
@click="deleteSnippet"
>
<gl-loading-icon v-if="isDeleting" inline />
<gl-loading-icon v-if="isDeleting" size="sm" inline />
{{ __('Delete snippet') }}
</gl-button>
</template>
......
......@@ -137,7 +137,7 @@ export default {
<div v-if="item.loadingLock" class="gl-mx-3">
<p class="gl-display-flex gl-justify-content-start gl-align-items-baseline gl-m-0">
<gl-loading-icon class="gl-pr-1" />
<gl-loading-icon size="sm" class="gl-pr-1" />
{{ loadingLockText(item) }}
</p>
</div>
......@@ -146,7 +146,7 @@ export default {
<p
class="gl-display-flex gl-justify-content-start gl-align-items-baseline gl-m-0 gl-text-red-500"
>
<gl-loading-icon class="gl-pr-1" />
<gl-loading-icon size="sm" class="gl-pr-1" />
{{ $options.i18n.removing }}
</p>
</div>
......
......@@ -136,7 +136,7 @@ export default {
<template>
<div class="mr-info-list clearfix mr-memory-usage js-mr-memory-usage">
<p v-if="shouldShowLoading" class="usage-info js-usage-info usage-info-loading">
<gl-loading-icon class="usage-info-load-spinner" />{{
<gl-loading-icon size="sm" class="usage-info-load-spinner" />{{
s__('mrWidget|Loading deployment statistics')
}}
</p>
......
......@@ -122,7 +122,7 @@ export default {
</div>
<div v-if="!isCollapsed" class="mr-widget-grouped-section">
<div v-if="isLoadingExpanded" class="report-block-container">
<gl-loading-icon inline /> {{ __('Loading...') }}
<gl-loading-icon size="sm" inline /> {{ __('Loading...') }}
</div>
<smart-virtual-list
v-else-if="fullData"
......
......@@ -64,7 +64,7 @@ export default {
:disabled="isLoading"
@click="toggleCollapsed"
>
<gl-loading-icon v-if="isLoading" />
<gl-loading-icon v-if="isLoading" size="sm" />
<gl-icon v-else :name="arrowIconName" class="js-icon" />
</button>
<template v-if="isCollapsed">
......
......@@ -177,7 +177,7 @@ export default {
data-testid="cancelAutomaticMergeButton"
@click.prevent="cancelAutomaticMerge"
>
<gl-loading-icon v-if="isCancellingAutoMerge" inline class="gl-mr-1" />
<gl-loading-icon v-if="isCancellingAutoMerge" size="sm" inline class="gl-mr-1" />
{{ cancelButtonText }}
</a>
</h4>
......@@ -200,7 +200,7 @@ export default {
data-testid="removeSourceBranchButton"
@click.prevent="removeSourceBranch"
>
<gl-loading-icon v-if="isRemovingSourceBranch" inline class="gl-mr-1" />
<gl-loading-icon v-if="isRemovingSourceBranch" size="sm" inline class="gl-mr-1" />
{{ s__('mrWidget|Delete source branch') }}
</a>
</p>
......
......@@ -63,7 +63,7 @@ export default {
size="small"
@click="refreshWidget"
>
<gl-loading-icon v-if="isRefreshing" :inline="true" />
<gl-loading-icon v-if="isRefreshing" size="sm" :inline="true" />
{{ s__('mrWidget|Refresh') }}
</gl-button>
</div>
......
......@@ -208,7 +208,7 @@ export default {
</gl-button>
</p>
<p v-if="shouldShowSourceBranchRemoving">
<gl-loading-icon :inline="true" />
<gl-loading-icon size="sm" :inline="true" />
<span> {{ s__('mrWidget|The source branch is being deleted') }} </span>
</p>
</section>
......
......@@ -204,7 +204,7 @@ export default {
@click="$emit('toggle-sidebar')"
>
<gl-icon name="user" />
<gl-loading-icon v-if="isUpdating" />
<gl-loading-icon v-if="isUpdating" size="sm" />
</div>
<gl-tooltip :target="() => $refs.assignees" boundary="viewport" placement="left">
<gl-sprintf :message="$options.i18n.ASSIGNEES_BLOCK">
......@@ -270,12 +270,12 @@ export default {
<p v-else-if="userListEmpty" class="gl-mx-5 gl-my-4">
{{ __('No Matching Results') }}
</p>
<gl-loading-icon v-else />
<gl-loading-icon v-else size="sm" />
</div>
</gl-dropdown>
</div>
<gl-loading-icon v-if="isUpdating" :inline="true" />
<gl-loading-icon v-if="isUpdating" size="sm" :inline="true" />
<div
v-else-if="!isDropdownShowing"
class="hide-collapsed value gl-m-0"
......
......@@ -81,7 +81,7 @@ export default {
<template v-if="sidebarCollapsed">
<div ref="status" class="gl-ml-6" data-testid="status-icon" @click="$emit('toggle-sidebar')">
<gl-icon name="status" />
<gl-loading-icon v-if="isUpdating" />
<gl-loading-icon v-if="isUpdating" size="sm" />
</div>
<gl-tooltip :target="() => $refs.status" boundary="viewport" placement="left">
<gl-sprintf :message="s__('AlertManagement|Alert status: %{status}')">
......@@ -120,7 +120,7 @@ export default {
@handle-updating="handleUpdating"
/>
<gl-loading-icon v-if="isUpdating" :inline="true" />
<gl-loading-icon v-if="isUpdating" size="sm" :inline="true" />
<p
v-else-if="!isDropdownShowing"
class="value gl-m-0"
......
......@@ -89,7 +89,7 @@ export default {
<template>
<div class="nothing-here-block">
<gl-loading-icon v-if="is($options.STATE_LOADING)" />
<gl-loading-icon v-if="is($options.STATE_LOADING)" size="sm" />
<template v-else>
<gl-alert
v-show="is($options.STATE_ERRORED)"
......
......@@ -36,7 +36,7 @@ export default {
data-toggle="dropdown"
aria-expanded="false"
>
<gl-loading-icon v-show="isLoading" :inline="true" />
<gl-loading-icon v-show="isLoading" size="sm" :inline="true" />
<slot v-if="$slots.default"></slot>
<span v-else class="dropdown-toggle-text"> {{ toggleText }} </span>
<gl-icon
......
......@@ -85,7 +85,7 @@ export default {
</script>
<template>
<span>
<gl-loading-icon v-if="loading" :inline="true" />
<gl-loading-icon v-if="loading" size="sm" :inline="true" />
<gl-icon v-else-if="isSymlink" name="symlink" :size="size" use-deprecated-sizes />
<svg v-else-if="!folder" :key="spriteHref" :class="[iconSizeClass, cssClasses]">
<use v-bind="{ 'xlink:href': spriteHref }" />
......
......@@ -189,7 +189,7 @@ export default {
name="suggestions-list"
:suggestions="preloadedSuggestions"
></slot>
<gl-loading-icon v-if="suggestionsLoading" />
<gl-loading-icon v-if="suggestionsLoading" size="sm" />
<template v-else>
<slot name="suggestions-list" :suggestions="availableSuggestions"></slot>
</template>
......
......@@ -97,7 +97,7 @@ export default {
{{ branch.text }}
</gl-filtered-search-suggestion>
<gl-dropdown-divider v-if="defaultBranches.length" />
<gl-loading-icon v-if="loading" />
<gl-loading-icon v-if="loading" size="sm" />
<template v-else>
<gl-filtered-search-suggestion
v-for="branch in branches"
......
......@@ -101,7 +101,7 @@ export default {
{{ emoji.value }}
</gl-filtered-search-suggestion>
<gl-dropdown-divider v-if="defaultEmojis.length" />
<gl-loading-icon v-if="loading" />
<gl-loading-icon v-if="loading" size="sm" />
<template v-else>
<gl-filtered-search-suggestion
v-for="emoji in emojis"
......
......@@ -134,7 +134,7 @@ export default {
{{ epic.text }}
</gl-filtered-search-suggestion>
<gl-dropdown-divider v-if="defaultEpics.length" />
<gl-loading-icon v-if="loading" />
<gl-loading-icon v-if="loading" size="sm" />
<template v-else>
<gl-filtered-search-suggestion v-for="epic in epics" :key="epic.id" :value="getValue(epic)">
{{ epic.title }}
......
......@@ -103,7 +103,7 @@ export default {
{{ iteration.text }}
</gl-filtered-search-suggestion>
<gl-dropdown-divider v-if="defaultIterations.length" />
<gl-loading-icon v-if="loading" />
<gl-loading-icon v-if="loading" size="sm" />
<template v-else>
<gl-filtered-search-suggestion
v-for="iteration in iterations"
......
......@@ -102,7 +102,7 @@ export default {
{{ milestone.text }}
</gl-filtered-search-suggestion>
<gl-dropdown-divider v-if="defaultMilestones.length" />
<gl-loading-icon v-if="loading" />
<gl-loading-icon v-if="loading" size="sm" />
<template v-else>
<gl-filtered-search-suggestion
v-for="milestone in milestones"
......
......@@ -111,7 +111,7 @@ export default {
</div>
<div v-if="isApplied" class="badge badge-success">{{ __('Applied') }}</div>
<div v-else-if="isApplying" class="d-flex align-items-center text-secondary">
<gl-loading-icon class="d-flex-center mr-2" />
<gl-loading-icon size="sm" class="d-flex-center mr-2" />
<span>{{ applyingSuggestionsMessage }}</span>
</div>
<div v-else-if="canApply && isBatched" class="d-flex align-items-center">
......
......@@ -82,7 +82,7 @@ export default {
<span class="attaching-file-message"></span>
<!-- eslint-disable-next-line @gitlab/vue-require-i18n-strings -->
<span class="uploading-progress">0%</span>
<gl-loading-icon inline />
<gl-loading-icon size="sm" inline />
</span>
<span class="uploading-error-container hide">
<span class="uploading-error-icon">
......
......@@ -194,7 +194,7 @@ export default {
<template v-if="selectedPlatform">
<h5>
{{ $options.i18n.architecture }}
<gl-loading-icon v-if="$apollo.loading" inline />
<gl-loading-icon v-if="$apollo.loading" size="sm" inline />
</h5>
<gl-dropdown class="gl-mb-3" :text="selectedArchitectureName">
......
......@@ -81,7 +81,7 @@ export default {
{{ templateText }}
</span>
<gl-loading-icon v-if="isLoading" inline :label="loadingIconLabel" />
<gl-loading-icon v-if="isLoading" size="sm" inline :label="loadingIconLabel" />
<clipboard-button v-else size="small" v-bind="clipboardProps" />
</div>
</div>
......
......@@ -104,7 +104,7 @@ export default {
<collapsed-calendar-icon :text="collapsedText" class="sidebar-collapsed-icon" />
<div class="title">
{{ label }}
<gl-loading-icon v-if="isLoading" :inline="true" />
<gl-loading-icon v-if="isLoading" size="sm" :inline="true" />
<div class="float-right">
<button
v-if="editable && !editing"
......
......@@ -148,7 +148,7 @@ export default {
@hide="handleDropdownHide"
>
<template #button-content
><gl-loading-icon v-if="moveInProgress" class="gl-mr-3" />{{
><gl-loading-icon v-if="moveInProgress" size="sm" class="gl-mr-3" />{{
dropdownButtonTitle
}}</template
>
......
......@@ -108,7 +108,7 @@ export default {
class="float-left d-flex align-items-center"
@click="handleCreateClick"
>
<gl-loading-icon v-show="labelCreateInProgress" :inline="true" class="mr-1" />
<gl-loading-icon v-show="labelCreateInProgress" size="sm" :inline="true" class="mr-1" />
{{ __('Create') }}
</gl-button>
<gl-button class="float-right js-btn-cancel-create" @click="toggleDropdownContentsCreateView">
......
......@@ -26,7 +26,7 @@ export default {
<div class="hide-collapsed gl-line-height-20 gl-mb-2 gl-text-gray-900">
{{ __('Labels') }}
<template v-if="allowLabelEdit">
<gl-loading-icon v-show="labelsSelectInProgress" inline />
<gl-loading-icon v-show="labelsSelectInProgress" size="sm" inline />
<gl-button
variant="link"
class="float-right gl-text-gray-900! gl-hover-text-blue-800! js-sidebar-dropdown-toggle"
......
......@@ -117,7 +117,7 @@ export default {
data-testid="create-button"
@click="createLabel"
>
<gl-loading-icon v-if="labelCreateInProgress" :inline="true" class="mr-1" />
<gl-loading-icon v-if="labelCreateInProgress" size="sm" :inline="true" class="mr-1" />
{{ __('Create') }}
</gl-button>
<gl-button
......
......@@ -26,7 +26,7 @@ export default {
<div class="title hide-collapsed gl-mb-3">
{{ __('Labels') }}
<template v-if="allowLabelEdit">
<gl-loading-icon v-show="labelsSelectInProgress" inline />
<gl-loading-icon v-show="labelsSelectInProgress" size="sm" inline />
<gl-button
variant="link"
class="float-right js-sidebar-dropdown-toggle"
......
......@@ -771,6 +771,12 @@ $ide-commit-header-height: 48px;
}
.dropdown-menu-toggle {
background-color: var(--ide-input-background, transparent);
&:hover {
background-color: var(--ide-dropdown-btn-hover-background, $white-normal);
}
svg {
vertical-align: middle;
......@@ -779,16 +785,6 @@ $ide-commit-header-height: 48px;
color: var(--ide-text-color-secondary, $gray-500);
}
}
&:hover {
background-color: var(--ide-dropdown-btn-hover-background, $white-normal);
}
}
&.show {
.dropdown-menu-toggle {
background-color: var(--ide-input-background, $white-dark);
}
}
}
......
......@@ -13,7 +13,7 @@ class HelpController < ApplicationController
def index
# Remove YAML frontmatter so that it doesn't look weird
@help_index = File.read(Rails.root.join('doc', 'README.md')).sub(YAML_FRONT_MATTER_REGEXP, '')
@help_index = File.read(Rails.root.join('doc', 'index.md')).sub(YAML_FRONT_MATTER_REGEXP, '')
# Prefix Markdown links with `help/` unless they are external links.
# '//' not necessarily part of URL, e.g., mailto:mail@example.com
......
......@@ -72,27 +72,27 @@ For more information, read the internal issue
## How to use
### In models and services
### In models and integrations
The ReactiveCaching concern can be used in models as well as `project_services`
(`app/models/project_services`).
The ReactiveCaching concern can be used in models as well as `integrations`
(`app/models/integrations`).
1. Include the concern in your model or service.
1. Include the concern in your model or integration.
When including in a model:
To include the concern in a model:
```ruby
include ReactiveCaching
```
or when including in a `project_service`:
To include the concern in an integration:
```ruby
include ReactiveService
```
1. Implement the `calculate_reactive_cache` method in your model/service.
1. Call `with_reactive_cache` in your model/service where the cached value is needed.
1. Implement the `calculate_reactive_cache` method in your model or integration.
1. Call `with_reactive_cache` in your model or integration where the cached value is needed.
1. Set the [`reactive_cache_work_type` accordingly](#selfreactive_cache_work_type).
### In controllers
......
......@@ -125,7 +125,7 @@ export default {
@input="$emit('fetchGroups', $event)"
/>
</template>
<gl-loading-icon v-if="isLoadingGroups" />
<gl-loading-icon v-if="isLoadingGroups" size="sm" />
<template v-else>
<gl-dropdown-item
v-for="group in groups"
......
......@@ -158,7 +158,7 @@ export default {
</template>
<template #suggestions>
<template v-if="suggestionsLoading">
<gl-loading-icon />
<gl-loading-icon size="sm" />
</template>
<template v-else-if="hasSuggestions">
<gl-filtered-search-suggestion
......
......@@ -165,7 +165,7 @@ export default {
</div>
<div class="dropdown-content"></div>
<div class="dropdown-loading">
<gl-loading-icon />
<gl-loading-icon size="sm" />
</div>
</div>
</div>
......
......@@ -58,7 +58,7 @@ export default {
<template>
<div class="dropdown-assignees-list">
<div v-if="loading" class="dropdown-loading"><gl-loading-icon /></div>
<div v-if="loading" class="dropdown-loading"><gl-loading-icon size="sm" /></div>
<list-filter @onSearchInput="handleSearch" />
<list-content
v-if="!loading"
......
......@@ -131,7 +131,7 @@ export default {
/>
</div>
<div class="dropdown-content"></div>
<div class="dropdown-loading"><gl-loading-icon /></div>
<div class="dropdown-loading"><gl-loading-icon size="sm" /></div>
</div>
</div>
</div>
......
......@@ -127,6 +127,7 @@ export default {
<!-- Loading Rollout -->
<gl-loading-icon
v-if="isLoadingRollout(row.item.rolloutStatus)"
size="sm"
class="d-inline-flex mt-1"
/>
......
......@@ -158,7 +158,7 @@ export default {
<collapsed-calendar-icon :text="collapsedText" class="sidebar-collapsed-icon" />
<div class="title">
{{ label }}
<gl-loading-icon v-if="dateSaveInProgress" :inline="true" />
<gl-loading-icon v-if="dateSaveInProgress" size="sm" :inline="true" />
<div class="float-right d-flex">
<gl-icon
ref="epicDatePopover"
......
......@@ -80,7 +80,7 @@ export default {
<template>
<gl-tab :title="s__('Incident|Metrics')" data-testid="metrics-tab">
<div v-if="isLoadingMetricImages">
<gl-loading-icon class="gl-p-5" />
<gl-loading-icon class="gl-p-5" size="sm" />
</div>
<gl-modal
modal-id="upload-metric-modal"
......
......@@ -88,7 +88,7 @@ export default {
<template>
<div class="list-section">
<gl-loading-icon v-if="loading" />
<gl-loading-icon v-if="loading" size="sm" />
<div v-else-if="rotations.length === 0 && !loading" class="gl-clearfix">
<span
class="details-cell gl-display-flex gl-justify-content-space-between gl-align-items-center gl-pl-3"
......
......@@ -93,7 +93,7 @@ export default {
<span class="h5">{{ numberOfFeatureFlags }}</span>
</h3>
</div>
<gl-loading-icon v-if="loading" class="gl-my-3" />
<gl-loading-icon v-if="loading" size="sm" class="gl-my-3" />
<ul v-else class="content-list related-items-list">
<li
v-for="flag in featureFlags"
......
......@@ -90,6 +90,6 @@ export default {
<span class="no-value">{{ __('None') }}</span>
</div>
<gl-loading-icon v-if="isFetching" />
<gl-loading-icon v-if="isFetching" size="sm" />
</div>
</template>
......@@ -121,7 +121,7 @@ export default {
{{ $options.noIteration.title }}
</gl-dropdown-item>
<gl-dropdown-divider />
<gl-loading-icon v-if="$apollo.queries.iterations.loading" />
<gl-loading-icon v-if="$apollo.queries.iterations.loading" size="sm" />
<template v-else-if="!glFeatures.iterationCadences">
<gl-dropdown-item
v-for="iterationItem in iterations"
......
......@@ -148,7 +148,7 @@ export default {
<div ref="status" v-gl-tooltip.left.viewport="statusTooltip" class="sidebar-collapsed-icon">
<gl-icon name="status-health" :size="14" />
<gl-loading-icon v-if="isFetching" />
<gl-loading-icon v-if="isFetching" size="sm" />
<p v-else class="collapse-truncated-title gl-px-2">{{ statusText }}</p>
</div>
......@@ -211,7 +211,7 @@ export default {
</gl-dropdown>
</div>
<gl-loading-icon v-if="isFetching" :inline="true" />
<gl-loading-icon v-if="isFetching" size="sm" :inline="true" />
<p v-else-if="!isDropdownShowing" class="value gl-m-0" :class="{ 'no-value': !status }">
<span v-if="status" class="text-plain gl-font-weight-bold">{{ statusText }}</span>
<span v-else>{{ $options.i18n.noneText }}</span>
......
......@@ -146,7 +146,7 @@ export default {
@click="onCollapsedClick"
>
<gl-icon :size="16" name="weight" />
<gl-loading-icon v-if="fetching" class="js-weight-collapsed-loading-icon" />
<gl-loading-icon v-if="fetching" size="sm" class="js-weight-collapsed-loading-icon" />
<span v-else class="js-weight-collapsed-weight-label">
{{ collapsedWeightLabel
}}<template v-if="weight > $options.maxDisplayWeight">&hellip;</template>
......@@ -154,7 +154,12 @@ export default {
</div>
<div class="hide-collapsed gl-line-height-20 gl-mb-2 gl-text-gray-900">
{{ s__('Sidebar|Weight') }}
<gl-loading-icon v-if="fetching || loading" :inline="true" class="js-weight-loading-icon" />
<gl-loading-icon
v-if="fetching || loading"
size="sm"
:inline="true"
class="js-weight-loading-icon"
/>
<a
v-if="editable"
class="float-right edit-link js-weight-edit-link"
......
......@@ -181,7 +181,7 @@ export default {
class="btn-blank sidebar-collapsed-icon"
@click="handleTodoButtonClick"
>
<gl-loading-icon v-if="todoUpdateInProgress" />
<gl-loading-icon v-if="todoUpdateInProgress" size="sm" />
<gl-icon v-else :name="todoIcon" :class="{ 'todo-undone': isTodoPending }" />
</button>
</div>
......
......@@ -86,7 +86,7 @@ export default {
<template #modal-cancel>{{ s__('Cancel') }}</template>
<template #modal-ok>
<gl-loading-icon v-if="isApproving" inline />
<gl-loading-icon v-if="isApproving" size="sm" inline />
{{ s__('Approve') }}
</template>
</gl-modal>
......
......@@ -223,7 +223,7 @@ export default {
>
<span>
{{ __('Epic')
}}<gl-loading-icon v-if="epicSelectInProgress" class="gl-ml-2" :inline="true"
}}<gl-loading-icon v-if="epicSelectInProgress" size="sm" class="gl-ml-2" :inline="true"
/></span>
<gl-link
......@@ -278,7 +278,7 @@ export default {
<p v-else-if="epicListNotValid" class="gl-mx-5 gl-my-4">
{{ $options.i18n.noMatch }}
</p>
<gl-loading-icon v-else />
<gl-loading-icon v-else size="sm" />
</gl-dropdown>
</div>
......
......@@ -86,7 +86,11 @@ export default {
<span class="js-license-name">{{ license.name }}</span>
<div class="float-right">
<div class="d-flex">
<gl-loading-icon v-if="loading" class="js-loading-icon d-flex align-items-center mr-2" />
<gl-loading-icon
v-if="loading"
size="sm"
class="js-loading-icon d-flex align-items-center mr-2"
/>
<gl-dropdown
:text="dropdownText"
:disabled="loading"
......
......@@ -76,7 +76,7 @@ export default {
};
</script>
<template>
<gl-loading-icon v-if="showLoadingSpinner" />
<gl-loading-icon v-if="showLoadingSpinner" size="sm" />
<div v-else class="license-management">
<delete-confirmation-modal v-if="isAdmin" />
......
......@@ -265,7 +265,7 @@ export default {
class="detail-page-header-body align-items-center"
data-testid="vulnerability-detail-body"
>
<gl-loading-icon v-if="isLoadingVulnerability" class="mr-2" />
<gl-loading-icon v-if="isLoadingVulnerability" size="sm" class="mr-2" />
<gl-badge v-else class="gl-mr-4 text-capitalize" :variant="stateVariant">
{{ vulnerability.state }}
</gl-badge>
......@@ -281,7 +281,7 @@ export default {
<div class="detail-page-header-actions align-items-center">
<label class="mb-0 mx-2">{{ __('Status') }}</label>
<gl-loading-icon v-if="isLoadingVulnerability" class="d-inline" />
<gl-loading-icon v-if="isLoadingVulnerability" size="sm" class="d-inline" />
<vulnerability-state-dropdown
v-else
:initial-state="vulnerability.state"
......
......@@ -171,7 +171,7 @@ export default {
class="m-3"
>
<div v-safe-html="noteHtml" class="md">
<gl-loading-icon />
<gl-loading-icon size="sm" />
</div>
<template #right-content>
......
......@@ -191,6 +191,7 @@ export default {
<gl-loading-icon
v-if="isFetchingRelatedIssues"
ref="loadingIcon"
size="sm"
:label="$options.i18n.loadingStateLabel"
class="gl-my-3"
/>
......
......@@ -95,7 +95,7 @@ export default {
<time-ago-tooltip ref="timeAgo" :time="time" />
</template>
<template #user>
<gl-loading-icon v-if="isLoadingUser" class="d-inline ml-1" />
<gl-loading-icon v-if="isLoadingUser" class="d-inline ml-1" size="sm" />
<user-avatar-link
v-else-if="user"
:link-href="user.user_path"
......
......@@ -120,13 +120,6 @@ RSpec.describe Security::DependencyListService do
expect(dependencies).to eq([{ name: "saml2-js", vulnerabilities: %w(critical medium unknown) },
{ name: "nokogiri", vulnerabilities: ["high"] }])
end
it 'returns array of data with package vulnerabilities sorted in descending order' do
saml2js_dependency = subject.find { |dep| dep[:name] == 'saml2-js' }
saml2js_severities = saml2js_dependency[:vulnerabilities].map {|v| v[:severity] }
expect(saml2js_severities).to eq(%w(critical medium unknown))
end
end
context 'in ascending order' do
......@@ -145,13 +138,6 @@ RSpec.describe Security::DependencyListService do
expect(dependencies).to eq([{ name: "nokogiri", vulnerabilities: ["high"] },
{ name: "saml2-js", vulnerabilities: %w(critical medium unknown) }])
end
it 'returns array of data with package vulnerabilities sorted in descending order' do
saml2js_dependency = subject.find { |dep| dep[:name] == 'saml2-js' }
saml2js_severities = saml2js_dependency[:vulnerabilities].map {|v| v[:severity] }
expect(saml2js_severities).to eq(%w(critical medium unknown))
end
end
end
end
......
......@@ -157,6 +157,8 @@ module API
[options[:with].prepare_relation(projects, options), options]
end
Preloaders::UserMaxAccessLevelInProjectsPreloader.new(records, current_user).execute if current_user
present records, options
end
......
......@@ -49,7 +49,7 @@ module Gitlab
end
end
response = GitalyClient.call(@repository.storage, :conflicts_service, :resolve_conflicts, req_enum, remote_storage: target_repository.storage, timeout: GitalyClient.medium_timeout)
response = GitalyClient.call(@repository.storage, :conflicts_service, :resolve_conflicts, req_enum, remote_storage: target_repository.storage, timeout: GitalyClient.long_timeout)
if response.resolution_error.present?
raise Gitlab::Git::Conflict::Resolver::ResolutionError, response.resolution_error
......
......@@ -274,7 +274,7 @@ RSpec.describe HelpController do
end
def stub_readme(content)
expect_file_read(Rails.root.join('doc', 'README.md'), content: content)
expect_file_read(Rails.root.join('doc', 'index.md'), content: content)
end
def stub_two_factor_required
......
......@@ -164,24 +164,21 @@ RSpec.describe API::Projects do
end
end
shared_examples_for 'projects response without N + 1 queries' do
shared_examples_for 'projects response without N + 1 queries' do |threshold|
let(:additional_project) { create(:project, :public) }
it 'avoids N + 1 queries' do
get api('/projects', current_user)
control = ActiveRecord::QueryRecorder.new do
get api('/projects', current_user)
end
if defined?(additional_project)
additional_project
else
create(:project, :public)
end
additional_project
# TODO: We're currently querying to detect if a project is a fork
# in 2 ways. Lower this back to 8 when `ForkedProjectLink` relation is
# removed
expect do
get api('/projects', current_user)
end.not_to exceed_query_limit(control).with_threshold(9)
end.not_to exceed_query_limit(control).with_threshold(threshold)
end
end
......@@ -194,7 +191,7 @@ RSpec.describe API::Projects do
let(:projects) { [project] }
end
it_behaves_like 'projects response without N + 1 queries' do
it_behaves_like 'projects response without N + 1 queries', 1 do
let(:current_user) { nil }
end
end
......@@ -206,7 +203,7 @@ RSpec.describe API::Projects do
let(:projects) { user_projects }
end
it_behaves_like 'projects response without N + 1 queries' do
it_behaves_like 'projects response without N + 1 queries', 0 do
let(:current_user) { user }
end
......@@ -215,7 +212,7 @@ RSpec.describe API::Projects do
create(:project, :public, group: create(:group))
end
it_behaves_like 'projects response without N + 1 queries' do
it_behaves_like 'projects response without N + 1 queries', 0 do
let(:current_user) { user }
let(:additional_project) { create(:project, :public, group: create(:group)) }
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment