From 6d997710637535cfe2f8d466101babd56a357571 Mon Sep 17 00:00:00 2001
From: Thomas Randolph
Date: Thu, 22 Sep 2022 14:51:21 -0600
Subject: [PATCH 1/6] Add the diverged commits when displaying the merge
controls
Changelog: fixed
---
.../components/states/ready_to_merge.vue | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
index 16a7119e1028b2..0ca75f6eff0cba 100644
--- a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
+++ b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
@@ -703,6 +703,18 @@ export default {
:class="{ 'gl-mb-5': shouldShowMergeControls }"
class="gl-w-full gl-order-n1 gl-text-gray-500"
>
+
+
+
+ {{
+ n__('%d commit behind', '%d commits behind', mr.divergedCommitsCount)
+ }}
+
+
+
+ ·
--
GitLab
From 17f9f997109cea04757501475a6a559d3cdcfcef Mon Sep 17 00:00:00 2001
From: Thomas Randolph
Date: Thu, 22 Sep 2022 16:07:55 -0600
Subject: [PATCH 2/6] Test that the ready-to-merge widget shows the diverged
commits
... or not.
---
.../states/mr_widget_ready_to_merge_spec.js | 29 +++++++++++++++++++
1 file changed, 29 insertions(+)
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 f5a489f1a32455..9844af208d2f78 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
@@ -105,6 +105,7 @@ const createComponent = (
},
stubs: {
CommitEdit,
+ GlSprintf,
},
apolloProvider: createMockApollo([[readyToMergeQuery, readyToMergeResponseSpy]]),
});
@@ -775,6 +776,34 @@ describe('ReadyToMerge', () => {
});
});
+ describe('source and target branches diverged', () => {
+ describe('when the MR is showing the Merge button', () => {
+ it('does not display the diverged commits message if the source branch is not behind the target', () => {
+ createComponent({ mr: { divergedCommitsCount: 0 } });
+
+ const textBody = wrapper.text();
+
+ expect(textBody).toEqual(
+ expect.not.stringContaining('The source branch is 0 commits behind the target branch'),
+ );
+ expect(textBody).toEqual(
+ expect.not.stringContaining('The source branch is 0 commit behind the target branch'),
+ );
+ expect(textBody).toEqual(
+ expect.not.stringContaining('The source branch is behind the target branch'),
+ );
+ });
+
+ it('shows the diverged commits text when the source branch is behind the target', () => {
+ createComponent({ mr: { divergedCommitsCount: 9001 } });
+
+ expect(wrapper.text()).toEqual(
+ expect.stringContaining('The source branch is 9001 commits behind the target branch'),
+ );
+ });
+ });
+ });
+
describe('Merge button when pipeline has failed', () => {
beforeEach(() => {
createComponent({
--
GitLab
From d30245ad97c0fe3459364e7c1fe37114f6d969c3 Mon Sep 17 00:00:00 2001
From: Thomas Randolph
Date: Tue, 27 Sep 2022 12:42:12 -0600
Subject: [PATCH 3/6] Add a computed property for diverged commits greater than
0
---
.../components/states/ready_to_merge.vue | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
index 0ca75f6eff0cba..1559c2e771a871 100644
--- a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
+++ b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
@@ -337,6 +337,9 @@ export default {
? __('Deleted the source branch.')
: __('Did not delete the source branch.');
},
+ sourceHasDivergedFromTarget(){
+ return this.mr.divergedCommitsCount > 0;
+ },
showMergeDetailsHeader() {
return ['readyToMerge'].indexOf(this.mr.state) >= 0;
},
@@ -663,7 +666,7 @@ export default {
{{ __('Merge details') }}
- -
+
-
@@ -703,7 +706,7 @@ export default {
:class="{ 'gl-mb-5': shouldShowMergeControls }"
class="gl-w-full gl-order-n1 gl-text-gray-500"
>
-
+
@@ -714,7 +717,7 @@ export default {
- ·
+ ·
Date: Tue, 27 Sep 2022 12:51:56 -0600
Subject: [PATCH 4/6] Move text to i18n object
---
.../components/states/ready_to_merge.vue | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
index 1559c2e771a871..5e89d28ee50ee0 100644
--- a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
+++ b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
@@ -17,7 +17,7 @@ import readyToMergeQuery from 'ee_else_ce/vue_merge_request_widget/queries/state
import createFlash from '~/flash';
import { secondsToMilliseconds } from '~/lib/utils/datetime_utility';
import simplePoll from '~/lib/utils/simple_poll';
-import { __, s__ } from '~/locale';
+import { __, s__, n__ } from '~/locale';
import SmartInterval from '~/smart_interval';
import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { helpPagePath } from '~/helpers/help_page_helper';
@@ -337,7 +337,7 @@ export default {
? __('Deleted the source branch.')
: __('Did not delete the source branch.');
},
- sourceHasDivergedFromTarget(){
+ sourceHasDivergedFromTarget() {
return this.mr.divergedCommitsCount > 0;
},
showMergeDetailsHeader() {
@@ -512,6 +512,8 @@ export default {
mergeAndSquashCommitTemplatesHintText: s__(
'mrWidget|To change these default messages, edit the templates for both the merge and squash commit messages. %{linkStart}Learn more.%{linkEnd}',
),
+ sourceDivergedFromTargetText: s__('mrWidget|The source branch is %{link} the target branch'),
+ divergedCommits: (count) => n__('%d commit behind', '%d commits behind', count),
},
};
@@ -707,12 +709,10 @@ export default {
class="gl-w-full gl-order-n1 gl-text-gray-500"
>
-
+
{{
- n__('%d commit behind', '%d commits behind', mr.divergedCommitsCount)
+ $options.i18n.divergedCommits(mr.divergedCommitsCount)
}}
--
GitLab
From 8df24cf30cc9963ff4f404f8b1767c6d8877943b Mon Sep 17 00:00:00 2001
From: Thomas Randolph
Date: Tue, 27 Sep 2022 12:59:05 -0600
Subject: [PATCH 5/6] Change toEqual assertions to toBe assertions
---
.../components/states/mr_widget_ready_to_merge_spec.js | 8 ++++----
1 file changed, 4 insertions(+), 4 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 9844af208d2f78..eb2ecc1362139e 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
@@ -783,13 +783,13 @@ describe('ReadyToMerge', () => {
const textBody = wrapper.text();
- expect(textBody).toEqual(
+ expect(textBody).toBe(
expect.not.stringContaining('The source branch is 0 commits behind the target branch'),
);
- expect(textBody).toEqual(
+ expect(textBody).toBe(
expect.not.stringContaining('The source branch is 0 commit behind the target branch'),
);
- expect(textBody).toEqual(
+ expect(textBody).toBe(
expect.not.stringContaining('The source branch is behind the target branch'),
);
});
@@ -797,7 +797,7 @@ describe('ReadyToMerge', () => {
it('shows the diverged commits text when the source branch is behind the target', () => {
createComponent({ mr: { divergedCommitsCount: 9001 } });
- expect(wrapper.text()).toEqual(
+ expect(wrapper.text()).toBe(
expect.stringContaining('The source branch is 9001 commits behind the target branch'),
);
});
--
GitLab
From 051a8301c34d42fef3d7a706361b311b64464963 Mon Sep 17 00:00:00 2001
From: Thomas Randolph
Date: Tue, 27 Sep 2022 15:46:29 -0600
Subject: [PATCH 6/6] Revert "Change toEqual assertions to toBe assertions"
This reverts commit 8df24cf30cc9963ff4f404f8b1767c6d8877943b.
The `.toBe` assertion does not work with `stringContaining` matchers.
---
.../components/states/mr_widget_ready_to_merge_spec.js | 8 ++++----
1 file changed, 4 insertions(+), 4 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 eb2ecc1362139e..9844af208d2f78 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
@@ -783,13 +783,13 @@ describe('ReadyToMerge', () => {
const textBody = wrapper.text();
- expect(textBody).toBe(
+ expect(textBody).toEqual(
expect.not.stringContaining('The source branch is 0 commits behind the target branch'),
);
- expect(textBody).toBe(
+ expect(textBody).toEqual(
expect.not.stringContaining('The source branch is 0 commit behind the target branch'),
);
- expect(textBody).toBe(
+ expect(textBody).toEqual(
expect.not.stringContaining('The source branch is behind the target branch'),
);
});
@@ -797,7 +797,7 @@ describe('ReadyToMerge', () => {
it('shows the diverged commits text when the source branch is behind the target', () => {
createComponent({ mr: { divergedCommitsCount: 9001 } });
- expect(wrapper.text()).toBe(
+ expect(wrapper.text()).toEqual(
expect.stringContaining('The source branch is 9001 commits behind the target branch'),
);
});
--
GitLab