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,
};
|