Commit dc061823 authored by GitLab Bot's avatar GitLab Bot

Automatic merge of gitlab-org/gitlab master

parents a192b689 6bf61eb6
......@@ -760,7 +760,7 @@ GEM
mini_histogram (0.3.1)
mini_magick (4.10.1)
mini_mime (1.0.2)
mini_portile2 (2.5.0)
mini_portile2 (2.5.1)
minitest (5.11.3)
mixlib-cli (2.1.8)
mixlib-config (3.0.9)
......@@ -798,7 +798,7 @@ GEM
netrc (0.11.0)
nio4r (2.5.4)
no_proxy_fix (0.1.2)
nokogiri (1.11.4)
nokogiri (1.11.5)
mini_portile2 (~> 2.5.0)
racc (~> 1.4)
nokogumbo (2.0.2)
......
......@@ -72,9 +72,8 @@
.checkbox-icon-inline-wrapper
= status_form.check_box :availability, { data: { testid: "user-availability-checkbox" }, label: s_("Profiles|Busy"), wrapper_class: 'gl-mr-0 gl-font-weight-bold' }, availability["busy"], availability["not_set"]
.gl-text-gray-600.gl-ml-5= s_('Profiles|"Busy" will be shown next to your name')
- if Feature.enabled?(:user_time_settings)
.col-lg-12
%hr
.col-lg-12
%hr
.row.user-time-preferences.js-search-settings-section
.col-lg-4.profile-settings-sidebar
%h4.gl-mt-0= s_("Profiles|Time settings")
......
......@@ -41,7 +41,6 @@ export default {
},
computed: {
...mapState([
'featureFlags',
'isLoading',
'isLoadingStage',
'currentGroup',
......@@ -74,9 +73,6 @@ export default {
shouldDisplayFilters() {
return !this.errorCode && !this.hasNoAccessError;
},
shouldDisplayDurationChart() {
return this.featureFlags.hasDurationChart;
},
selectedStageReady() {
return !this.hasNoAccessError && this.selectedStage;
},
......@@ -200,11 +196,7 @@ export default {
<template v-else>
<template v-if="isOverviewStageSelected">
<metrics :group-path="currentGroupPath" :request-params="cycleAnalyticsRequestParams" />
<duration-chart
v-if="shouldDisplayDurationChart"
class="gl-mt-3"
:stages="activeStages"
/>
<duration-chart class="gl-mt-3" :stages="activeStages" />
<type-of-work-charts />
</template>
<stage-table
......
......@@ -19,7 +19,6 @@ export default () => {
const { emptyStateSvgPath, noDataSvgPath, noAccessSvgPath } = el.dataset;
const initialData = buildCycleAnalyticsInitialData(el.dataset);
const store = createStore();
const { cycleAnalyticsScatterplotEnabled: hasDurationChart = false } = gon?.features;
const {
author_username = null,
......@@ -37,7 +36,6 @@ export default () => {
selectedMilestone: milestone_title,
selectedAssigneeList: assignee_username,
selectedLabelList: label_name,
featureFlags: { hasDurationChart },
pagination: {
sort: sort?.value || null,
direction: direction?.value || null,
......
......@@ -13,7 +13,6 @@ class Groups::Analytics::CycleAnalyticsController < Groups::Analytics::Applicati
before_action :request_params, only: :show
before_action do
push_frontend_feature_flag(:cycle_analytics_scatterplot_enabled, default_enabled: true)
render_403 unless can?(current_user, :read_group_cycle_analytics, @group)
end
......
---
name: cycle_analytics_scatterplot_enabled
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20290
rollout_issue_url:
milestone: '12.6'
type: development
group: group::optimize
default_enabled: true
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe 'Group value stream analytics' do
let_it_be(:group) { create(:group) }
let_it_be(:user) { create(:user) }
before do
stub_licensed_features(cycle_analytics_for_groups: true)
group.add_owner(user)
sign_in(user)
end
it 'pushes frontend feature flags' do
visit group_analytics_cycle_analytics_path(group)
expect(page).to have_pushed_frontend_feature_flags(cycleAnalyticsScatterplotEnabled: true)
end
end
......@@ -58,10 +58,6 @@ const defaultStubs = {
UrlSync,
};
const defaultFeatureFlags = {
hasDurationChart: true,
};
const [selectedValueStream] = valueStreams;
const initialCycleAnalyticsState = {
......@@ -127,7 +123,6 @@ describe('EE Value Stream Analytics component', () => {
await store.dispatch('initializeCycleAnalytics', {
...initialState,
featureFlags: {
...defaultFeatureFlags,
...featureFlags,
},
});
......
......@@ -54,9 +54,7 @@ describe('Value Stream Analytics actions', () => {
createdAfter,
createdBefore,
stages: [],
featureFlags: {
hasDurationChart: true,
},
featureFlags: {},
activeStages,
selectedValueStream,
...mockGetters,
......@@ -71,7 +69,7 @@ describe('Value Stream Analytics actions', () => {
it.each`
action | type | stateKey | payload
${'setFeatureFlags'} | ${'SET_FEATURE_FLAGS'} | ${'featureFlags'} | ${{ hasDurationChart: true }}
${'setFeatureFlags'} | ${'SET_FEATURE_FLAGS'} | ${'featureFlags'} | ${{ someFeatureFlag: true }}
${'setSelectedProjects'} | ${'SET_SELECTED_PROJECTS'} | ${'selectedProjectIds'} | ${[10, 20, 30, 40]}
`('$action should set $stateKey with $payload and type $type', ({ action, type, payload }) => {
return testAction(
......
......@@ -30,9 +30,7 @@ const rootState = {
stages: [...activeStages, hiddenStage],
selectedGroup,
selectedValueStream,
featureFlags: {
hasDurationChart: true,
},
featureFlags: {},
};
describe('DurationChart actions', () => {
......
......@@ -86,7 +86,6 @@ describe('Value Stream Analytics mutations', () => {
it.each`
mutation | payload | expectedState
${types.SET_FEATURE_FLAGS} | ${{ hasDurationChart: true }} | ${{ featureFlags: { hasDurationChart: true } }}
${types.SET_SELECTED_PROJECTS} | ${selectedProjects} | ${{ selectedProjects }}
${types.SET_DATE_RANGE} | ${{ createdAfter, createdBefore }} | ${{ createdAfter, createdBefore }}
${types.SET_SELECTED_STAGE} | ${{ id: 'first-stage' }} | ${{ selectedStage: { id: 'first-stage' } }}
......
......@@ -6,7 +6,7 @@ import PolicyList from 'ee/threat_monitoring/components/policy_list.vue';
import networkPoliciesQuery from 'ee/threat_monitoring/graphql/queries/network_policies.query.graphql';
import scanExecutionPoliciesQuery from 'ee/threat_monitoring/graphql/queries/scan_execution_policies.query.graphql';
import createStore from 'ee/threat_monitoring/store';
import createMockApolloProvider from 'helpers/mock_apollo_helper';
import createMockApollo from 'helpers/mock_apollo_helper';
import { mountExtended, shallowMountExtended } from 'helpers/vue_test_utils_helper';
import waitForPromises from 'helpers/wait_for_promises';
import { networkPolicies, scanExecutionPolicies } from '../mocks/mock_apollo';
......@@ -59,7 +59,7 @@ describe('PolicyList component', () => {
provide: {
projectPath: fullPath,
},
apolloProvider: createMockApolloProvider([
apolloProvider: createMockApollo([
[networkPoliciesQuery, requestHandlers.networkPolicies],
[scanExecutionPoliciesQuery, requestHandlers.scanExecutionPolicies],
]),
......
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