Commit 75d65707 authored by Brandon Labuschagne's avatar Brandon Labuschagne

Merge branch 'ek-fix-duplicate-vsa-summary-requests' into 'master'

[VSA] Fix duplicate summary data request

See merge request gitlab-org/gitlab!75515
parents 718370d2 67abfa8a
<script> <script>
import { GlEmptyState } from '@gitlab/ui'; import { GlEmptyState } from '@gitlab/ui';
import { mapActions, mapState, mapGetters } from 'vuex'; import { mapActions, mapState, mapGetters } from 'vuex';
import { toYmd } from '~/analytics/shared/utils';
import PathNavigation from '~/cycle_analytics/components/path_navigation.vue'; import PathNavigation from '~/cycle_analytics/components/path_navigation.vue';
import StageTable from '~/cycle_analytics/components/stage_table.vue'; import StageTable from '~/cycle_analytics/components/stage_table.vue';
import ValueStreamFilters from '~/cycle_analytics/components/value_stream_filters.vue'; import ValueStreamFilters from '~/cycle_analytics/components/value_stream_filters.vue';
...@@ -84,7 +83,7 @@ export default { ...@@ -84,7 +83,7 @@ export default {
return this.createdAfter && this.createdBefore; return this.createdAfter && this.createdBefore;
}, },
query() { query() {
const selectedProjectIds = this.selectedProjectIds?.length ? this.selectedProjectIds : null; const { project_ids, created_after, created_before } = this.cycleAnalyticsRequestParams;
const paginationUrlParams = !this.isOverviewStageSelected const paginationUrlParams = !this.isOverviewStageSelected
? { ? {
sort: this.pagination?.sort || null, sort: this.pagination?.sort || null,
...@@ -99,9 +98,9 @@ export default { ...@@ -99,9 +98,9 @@ export default {
return { return {
value_stream_id: this.selectedValueStream?.id || null, value_stream_id: this.selectedValueStream?.id || null,
project_ids: selectedProjectIds, project_ids,
created_after: toYmd(this.createdAfter), created_after,
created_before: toYmd(this.createdBefore), created_before,
stage_id: (!this.isOverviewStageSelected && this.selectedStage?.id) || null, // the `overview` stage is always the default, so dont persist the id if its selected stage_id: (!this.isOverviewStageSelected && this.selectedStage?.id) || null, // the `overview` stage is always the default, so dont persist the id if its selected
...paginationUrlParams, ...paginationUrlParams,
}; };
......
...@@ -42,7 +42,7 @@ export const cycleAnalyticsRequestParams = (state, getters) => { ...@@ -42,7 +42,7 @@ export const cycleAnalyticsRequestParams = (state, getters) => {
}); });
return { return {
project_ids: getters.selectedProjectIds, project_ids: getters.selectedProjectIds?.length ? getters.selectedProjectIds : null,
created_after: createdAfter ? dateFormat(createdAfter, dateFormats.isoDate) : null, created_after: createdAfter ? dateFormat(createdAfter, dateFormats.isoDate) : null,
created_before: createdBefore ? dateFormat(createdBefore, dateFormats.isoDate) : null, created_before: createdBefore ? dateFormat(createdBefore, dateFormats.isoDate) : null,
...filterBarQuery, ...filterBarQuery,
......
...@@ -118,7 +118,7 @@ export const buildCycleAnalyticsInitialData = ({ ...@@ -118,7 +118,7 @@ export const buildCycleAnalyticsInitialData = ({
createdAfter: createdAfter ? new Date(createdAfter) : null, createdAfter: createdAfter ? new Date(createdAfter) : null,
selectedProjects: projects selectedProjects: projects
? buildProjectsFromJSON(projects).map(convertObjectPropsToCamelCase) ? buildProjectsFromJSON(projects).map(convertObjectPropsToCamelCase)
: [], : null,
labelsPath, labelsPath,
milestonesPath, milestonesPath,
defaultStageConfig: defaultStages defaultStageConfig: defaultStages
......
...@@ -484,7 +484,7 @@ describe('EE Value Stream Analytics component', () => { ...@@ -484,7 +484,7 @@ describe('EE Value Stream Analytics component', () => {
wrapper = null; wrapper = null;
}); });
describe('with minimal parameters set set', () => { describe('with minimal parameters set', () => {
beforeEach(async () => { beforeEach(async () => {
wrapper = await createComponent(); wrapper = await createComponent();
......
...@@ -86,7 +86,7 @@ describe('buildCycleAnalyticsInitialData', () => { ...@@ -86,7 +86,7 @@ describe('buildCycleAnalyticsInitialData', () => {
${'group'} | ${null} ${'group'} | ${null}
${'createdBefore'} | ${null} ${'createdBefore'} | ${null}
${'createdAfter'} | ${null} ${'createdAfter'} | ${null}
${'selectedProjects'} | ${[]} ${'selectedProjects'} | ${null}
${'labelsPath'} | ${''} ${'labelsPath'} | ${''}
${'milestonesPath'} | ${''} ${'milestonesPath'} | ${''}
${'stage'} | ${null} ${'stage'} | ${null}
...@@ -152,13 +152,13 @@ describe('buildCycleAnalyticsInitialData', () => { ...@@ -152,13 +152,13 @@ describe('buildCycleAnalyticsInitialData', () => {
}); });
it.each` it.each`
field | value field | value | result
${'selectedProjects'} | ${null} ${'selectedProjects'} | ${null} | ${null}
${'selectedProjects'} | ${[]} ${'selectedProjects'} | ${[]} | ${[]}
${'selectedProjects'} | ${''} ${'selectedProjects'} | ${''} | ${null}
`('will be an empty array if given a value of `$value`', ({ value, field }) => { `('will be an empty array if given a value of `$value`', ({ value, field, result }) => {
expect(buildCycleAnalyticsInitialData({ projects: value })).toMatchObject({ expect(buildCycleAnalyticsInitialData({ projects: value })).toMatchObject({
[field]: [], [field]: result,
}); });
}); });
}); });
......
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