diff --git a/ee/app/assets/javascripts/analytics/cycle_analytics/components/duration_chart.stories.js b/ee/app/assets/javascripts/analytics/cycle_analytics/components/duration_chart.stories.js new file mode 100644 index 0000000000000000000000000000000000000000..b8227d4de694708ee092626a9e5e98c84bd7db70 --- /dev/null +++ b/ee/app/assets/javascripts/analytics/cycle_analytics/components/duration_chart.stories.js @@ -0,0 +1,33 @@ +import { withVuexStore } from 'storybook_addons/vuex_store'; +import DurationChart from './duration_chart.vue'; +import { selectedStageData, selectedStage } from './stories_constants'; + +export default { + component: DurationChart, + title: 'ee/analytics/cycle_analytics/components/duration_chart', + decorators: [withVuexStore], +}; + +const Template = (args, { argTypes, createVuexStore }) => ({ + components: { DurationChart }, + props: Object.keys(argTypes), + template: '', + store: createVuexStore({ + state: { + selectedStage, + }, + modules: { + durationChart: { + namespaced: true, + getters: { + durationChartPlottableData: () => selectedStageData, + }, + state: { + isLoading: false, + }, + }, + }, + }), +}); + +export const Default = Template.bind({}); diff --git a/ee/app/assets/javascripts/analytics/cycle_analytics/components/duration_overview_chart.stories.js b/ee/app/assets/javascripts/analytics/cycle_analytics/components/duration_overview_chart.stories.js new file mode 100644 index 0000000000000000000000000000000000000000..834fbc9a1b7729b905e499f57ff4d86455109dbf --- /dev/null +++ b/ee/app/assets/javascripts/analytics/cycle_analytics/components/duration_overview_chart.stories.js @@ -0,0 +1,30 @@ +import { withVuexStore } from 'storybook_addons/vuex_store'; +import DurationOverviewChart from './duration_overview_chart.vue'; +import { durationChartData } from './stories_constants'; + +export default { + component: DurationOverviewChart, + title: 'ee/analytics/cycle_analytics/components/duration_overview_chart', + decorators: [withVuexStore], +}; + +const Template = (args, { argTypes, createVuexStore }) => ({ + components: { DurationOverviewChart }, + props: Object.keys(argTypes), + template: '', + store: createVuexStore({ + modules: { + durationChart: { + namespaced: true, + getters: { + durationOverviewChartPlottableData: () => durationChartData, + }, + state: { + isLoading: false, + }, + }, + }, + }), +}); + +export const Default = Template.bind({}); diff --git a/ee/app/assets/javascripts/analytics/cycle_analytics/components/stories_constants.js b/ee/app/assets/javascripts/analytics/cycle_analytics/components/stories_constants.js new file mode 100644 index 0000000000000000000000000000000000000000..1123cf0184b1aac6c604e7c48893b415d7eb5550 --- /dev/null +++ b/ee/app/assets/javascripts/analytics/cycle_analytics/components/stories_constants.js @@ -0,0 +1,183 @@ +export const selectedStage = { + title: 'Stage 1', // eslint-disable-line @gitlab/require-i18n-strings +}; + +export const selectedStageData = [ + ['2023-09-06', null], + ['2023-09-07', null], + ['2023-09-08', null], + ['2023-09-09', null], + ['2023-09-10', null], + ['2023-09-11', null], + ['2023-09-12', null], + ['2023-09-13', null], + ['2023-09-14', null], + ['2023-09-15', null], + ['2023-09-16', null], + ['2023-09-17', null], + ['2023-09-18', null], + ['2023-09-19', null], + ['2023-09-20', null], + ['2023-09-21', 0], + ['2023-09-22', null], + ['2023-09-23', null], + ['2023-09-24', 0], + ['2023-09-25', 4], + ['2023-09-26', 4], + ['2023-09-27', 0], + ['2023-09-28', 0], + ['2023-09-29', null], + ['2023-09-30', 0], + ['2023-10-01', 0], + ['2023-10-02', 0], + ['2023-10-03', 11], + ['2023-10-04', 9], + ['2023-10-05', 7], +]; + +export const durationChartData = [ + { + name: 'Stage 1', // eslint-disable-line @gitlab/require-i18n-strings + data: selectedStageData, + }, + { + name: 'Stage 2', // eslint-disable-line @gitlab/require-i18n-strings + data: [ + ['2023-09-06', null], + ['2023-09-07', null], + ['2023-09-08', null], + ['2023-09-09', null], + ['2023-09-10', null], + ['2023-09-11', null], + ['2023-09-12', null], + ['2023-09-13', null], + ['2023-09-14', null], + ['2023-09-15', null], + ['2023-09-16', null], + ['2023-09-17', null], + ['2023-09-18', null], + ['2023-09-19', null], + ['2023-09-20', null], + ['2023-09-21', 0], + ['2023-09-22', null], + ['2023-09-23', null], + ['2023-09-24', 3], + ['2023-09-25', 0], + ['2023-09-26', 0], + ['2023-09-27', 0], + ['2023-09-28', 6], + ['2023-09-29', null], + ['2023-09-30', 14], + ['2023-10-01', 0], + ['2023-10-02', 0], + ['2023-10-03', 0], + ['2023-10-04', 9], + ['2023-10-05', 3], + ], + }, + { + name: 'Stage 3', // eslint-disable-line @gitlab/require-i18n-strings + data: [ + ['2023-09-06', null], + ['2023-09-07', null], + ['2023-09-08', null], + ['2023-09-09', null], + ['2023-09-10', null], + ['2023-09-11', null], + ['2023-09-12', null], + ['2023-09-13', null], + ['2023-09-14', null], + ['2023-09-15', null], + ['2023-09-16', null], + ['2023-09-17', null], + ['2023-09-18', null], + ['2023-09-19', null], + ['2023-09-20', null], + ['2023-09-21', 0], + ['2023-09-22', null], + ['2023-09-23', null], + ['2023-09-24', 0], + ['2023-09-25', 0], + ['2023-09-26', 7], + ['2023-09-27', 2], + ['2023-09-28', 0], + ['2023-09-29', null], + ['2023-09-30', 9], + ['2023-10-01', 0], + ['2023-10-02', 0], + ['2023-10-03', 2], + ['2023-10-04', 17], + ['2023-10-05', 0], + ], + }, + { + name: 'Stage 4', // eslint-disable-line @gitlab/require-i18n-strings + data: [ + ['2023-09-06', null], + ['2023-09-07', null], + ['2023-09-08', null], + ['2023-09-09', null], + ['2023-09-10', null], + ['2023-09-11', null], + ['2023-09-12', null], + ['2023-09-13', null], + ['2023-09-14', null], + ['2023-09-15', null], + ['2023-09-16', null], + ['2023-09-17', null], + ['2023-09-18', null], + ['2023-09-19', null], + ['2023-09-20', null], + ['2023-09-21', 0], + ['2023-09-22', null], + ['2023-09-23', null], + ['2023-09-24', 0], + ['2023-09-25', 0], + ['2023-09-26', 0], + ['2023-09-27', 0], + ['2023-09-28', 0], + ['2023-09-29', null], + ['2023-09-30', 6], + ['2023-10-01', 4], + ['2023-10-02', 0], + ['2023-10-03', 1], + ['2023-10-04', 4], + ['2023-10-05', 3], + ], + }, + { + name: 'Stage 5', // eslint-disable-line @gitlab/require-i18n-strings + data: [ + ['2023-09-06', null], + ['2023-09-07', null], + ['2023-09-08', null], + ['2023-09-09', null], + ['2023-09-10', null], + ['2023-09-11', null], + ['2023-09-12', null], + ['2023-09-13', null], + ['2023-09-14', null], + ['2023-09-15', null], + ['2023-09-16', null], + ['2023-09-17', null], + ['2023-09-18', null], + ['2023-09-19', null], + ['2023-09-20', null], + ['2023-09-21', 5], + ['2023-09-22', null], + ['2023-09-23', null], + ['2023-09-24', 0], + ['2023-09-25', 0], + ['2023-09-26', 1], + ['2023-09-27', 0], + ['2023-09-28', 0], + ['2023-09-29', null], + ['2023-09-30', 0], + ['2023-10-01', 0], + ['2023-10-02', 7], + ['2023-10-03', 0], + ['2023-10-04', 0], + ['2023-10-05', 0], + ], + }, +];