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

merge_checks.stories.js « components « vue_merge_request_widget « javascripts « assets « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 1c57226f887b7cf5b19bd708a176a966e647ae2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
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,
};