Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/vue_merge_request_widget/components/merge_checks.stories.js')
-rw-r--r--app/assets/javascripts/vue_merge_request_widget/components/merge_checks.stories.js91
1 files changed, 91 insertions, 0 deletions
diff --git a/app/assets/javascripts/vue_merge_request_widget/components/merge_checks.stories.js b/app/assets/javascripts/vue_merge_request_widget/components/merge_checks.stories.js
new file mode 100644
index 00000000000..1c57226f887
--- /dev/null
+++ b/app/assets/javascripts/vue_merge_request_widget/components/merge_checks.stories.js
@@ -0,0 +1,91 @@
+import createMockApollo from 'helpers/mock_apollo_helper';
+import mergeChecksQuery from '../queries/merge_checks.query.graphql';
+import conflictsStateQuery from '../queries/states/conflicts.query.graphql';
+import MergeChecks from './merge_checks.vue';
+
+const stylesheetsRequireCtx = require.context(
+ '../../../stylesheets',
+ true,
+ /(page_bundles\/merge_requests)\.scss$/,
+);
+
+stylesheetsRequireCtx('./page_bundles/merge_requests.scss');
+
+const defaultRender = (apolloProvider) => ({
+ components: { MergeChecks },
+ apolloProvider,
+ data() {
+ return { mr: { conflictResolutionPath: 'https://gitlab.com' } };
+ },
+ template: '<merge-checks :mr="mr" />',
+});
+
+const Template = ({ canMerge, failed, pushToSourceBranch }) => {
+ const requestHandlers = [
+ [
+ mergeChecksQuery,
+ () =>
+ Promise.resolve({
+ data: {
+ project: {
+ id: 1,
+ mergeRequest: {
+ id: 1,
+ userPermissions: { canMerge },
+ mergeChecks: [
+ {
+ failureReason: 'Unresolved discussions',
+ identifier: 'unresolved_discussions',
+ result: failed ? 'failed' : 'passed',
+ },
+ {
+ failureReason: 'Resolve conflicts',
+ identifier: 'conflicts',
+ result: failed ? 'failed' : 'passed',
+ },
+ ],
+ },
+ },
+ },
+ }),
+ ],
+ [
+ conflictsStateQuery,
+ () =>
+ Promise.resolve({
+ data: {
+ project: {
+ id: 1,
+ mergeRequest: {
+ id: 1,
+ shouldBeRebased: false,
+ sourceBranchProtected: false,
+ userPermissions: { pushToSourceBranch },
+ },
+ },
+ },
+ }),
+ ],
+ ];
+ const apolloProvider = createMockApollo(requestHandlers);
+
+ return defaultRender(apolloProvider);
+};
+
+const LoadingTemplate = () => {
+ const requestHandlers = [[mergeChecksQuery, () => new Promise(() => {})]];
+ const apolloProvider = createMockApollo(requestHandlers);
+
+ return defaultRender(apolloProvider);
+};
+
+export const Default = Template.bind({});
+Default.args = { canMerge: true, failed: true, pushToSourceBranch: true };
+
+export const Loading = LoadingTemplate.bind({});
+Loading.args = {};
+
+export default {
+ title: 'vue_merge_request_widget/merge_checks',
+ component: MergeChecks,
+};