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 'spec/frontend/vue_merge_request_widget/components/states/mr_widget_ready_to_merge_spec.js')
-rw-r--r--spec/frontend/vue_merge_request_widget/components/states/mr_widget_ready_to_merge_spec.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/spec/frontend/vue_merge_request_widget/components/states/mr_widget_ready_to_merge_spec.js b/spec/frontend/vue_merge_request_widget/components/states/mr_widget_ready_to_merge_spec.js
index 1b7338744e8..c9cc34e2cfc 100644
--- a/spec/frontend/vue_merge_request_widget/components/states/mr_widget_ready_to_merge_spec.js
+++ b/spec/frontend/vue_merge_request_widget/components/states/mr_widget_ready_to_merge_spec.js
@@ -212,6 +212,19 @@ describe('ReadyToMerge', () => {
expect(findMergeButton().text()).toBe('Set to auto-merge');
expect(findMergeHelperText().text()).toBe('Merge when pipeline succeeds');
});
+
+ it('should show merge help text when pipeline has failed and has an auto merge strategy', () => {
+ createComponent({
+ mr: {
+ pipeline: { status: 'FAILED' },
+ availableAutoMergeStrategies: MWPS_MERGE_STRATEGY,
+ hasCI: true,
+ },
+ });
+
+ expect(findMergeButton().text()).toBe('Set to auto-merge');
+ expect(findMergeHelperText().text()).toBe('Merge when pipeline succeeds');
+ });
});
describe('merge immediately dropdown', () => {
@@ -858,6 +871,42 @@ describe('ReadyToMerge', () => {
});
});
+ describe('only allow merge if pipeline succeeds', () => {
+ beforeEach(() => {
+ const response = JSON.parse(JSON.stringify(readyToMergeResponse));
+ response.data.project.onlyAllowMergeIfPipelineSucceeds = true;
+ response.data.project.mergeRequest.headPipeline = {
+ id: 1,
+ active: true,
+ status: '',
+ path: '',
+ };
+
+ readyToMergeResponseSpy = jest.fn().mockResolvedValueOnce(response);
+ });
+
+ it('hides merge immediately dropdown when subscription returns', async () => {
+ createComponent({ mr: { id: 1 } });
+
+ await waitForPromises();
+
+ expect(findMergeImmediatelyDropdown().exists()).toBe(false);
+
+ mockedSubscription.next({
+ data: {
+ mergeRequestMergeStatusUpdated: {
+ ...readyToMergeResponse.data.project.mergeRequest,
+ headPipeline: { id: 1, active: true, status: '', path: '' },
+ },
+ },
+ });
+
+ await waitForPromises();
+
+ expect(findMergeImmediatelyDropdown().exists()).toBe(false);
+ });
+ });
+
describe('commit message', () => {
it('updates commit message from subscription', async () => {
createComponent({ mr: { id: 1 } });