Commit eb072743 authored by Jose Ivan Vargas's avatar Jose Ivan Vargas

Merge branch '270104-mr-analytics-error-message-hiding-below-the-fold' into 'master'

[MR Analytics] Error message "hiding" below the fold

See merge request gitlab-org/gitlab!45686
parents 61c7d857 36a16d43
...@@ -92,7 +92,7 @@ export default { ...@@ -92,7 +92,7 @@ export default {
return !this.hasError && this.$apollo.queries.throughputChartData.loading; return !this.hasError && this.$apollo.queries.throughputChartData.loading;
}, },
chartDataAvailable() { chartDataAvailable() {
return this.formattedThroughputChartData[0]?.data.length; return this.formattedThroughputChartData[0]?.data?.some(entry => Boolean(entry[1]));
}, },
alertDetails() { alertDetails() {
return { return {
......
...@@ -6,7 +6,13 @@ import store from 'ee/analytics/merge_request_analytics/store'; ...@@ -6,7 +6,13 @@ import store from 'ee/analytics/merge_request_analytics/store';
import ThroughputChart from 'ee/analytics/merge_request_analytics/components/throughput_chart.vue'; import ThroughputChart from 'ee/analytics/merge_request_analytics/components/throughput_chart.vue';
import { THROUGHPUT_CHART_STRINGS } from 'ee/analytics/merge_request_analytics/constants'; import { THROUGHPUT_CHART_STRINGS } from 'ee/analytics/merge_request_analytics/constants';
import ChartSkeletonLoader from '~/vue_shared/components/resizable_chart/skeleton_loader.vue'; import ChartSkeletonLoader from '~/vue_shared/components/resizable_chart/skeleton_loader.vue';
import { throughputChartData, startDate, endDate, fullPath } from '../mock_data'; import {
throughputChartData,
throughputChartNoData,
startDate,
endDate,
fullPath,
} from '../mock_data';
const localVue = createLocalVue(); const localVue = createLocalVue();
localVue.use(Vuex); localVue.use(Vuex);
...@@ -134,6 +140,28 @@ describe('ThroughputChart', () => { ...@@ -134,6 +140,28 @@ describe('ThroughputChart', () => {
}); });
}); });
describe('with no data in the response', () => {
beforeEach(() => {
wrapper = createComponent();
wrapper.setData({ throughputChartData: throughputChartNoData });
});
it('does not display a skeleton loader', () => {
displaysComponent(ChartSkeletonLoader, false);
});
it('does not display the chart', () => {
displaysComponent(GlAreaChart, false);
});
it('displays an empty state message when there is no data', () => {
const alert = wrapper.find(GlAlert);
expect(alert.exists()).toBe(true);
expect(alert.text()).toBe(THROUGHPUT_CHART_STRINGS.NO_DATA);
});
});
describe('with errors', () => { describe('with errors', () => {
beforeEach(() => { beforeEach(() => {
wrapper = createComponent(); wrapper = createComponent();
......
...@@ -5,6 +5,8 @@ export const endDate = new Date('2020-08-01'); ...@@ -5,6 +5,8 @@ export const endDate = new Date('2020-08-01');
export const fullPath = 'gitlab-org/gitlab'; export const fullPath = 'gitlab-org/gitlab';
// We should update our tests to use fixtures instead of hardcoded mock data.
// https://gitlab.com/gitlab-org/gitlab/-/issues/270544
export const throughputChartData = { export const throughputChartData = {
May_2020: { count: 2, __typename: 'MergeRequestConnection' }, May_2020: { count: 2, __typename: 'MergeRequestConnection' },
Jun_2020: { count: 4, __typename: 'MergeRequestConnection' }, Jun_2020: { count: 4, __typename: 'MergeRequestConnection' },
...@@ -12,6 +14,13 @@ export const throughputChartData = { ...@@ -12,6 +14,13 @@ export const throughputChartData = {
__typename: 'Project', __typename: 'Project',
}; };
export const throughputChartNoData = {
May_2020: { count: 0, __typename: 'MergeRequestConnection' },
Jun_2020: { count: 0, __typename: 'MergeRequestConnection' },
Jul_2020: { count: 0, __typename: 'MergeRequestConnection' },
__typename: 'Project',
};
export const formattedThroughputChartData = [ export const formattedThroughputChartData = [
{ {
data: [['May 2020', 2], ['Jun 2020', 4], ['Jul 2020', 3]], data: [['May 2020', 2], ['Jun 2020', 4], ['Jul 2020', 3]],
......
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