From de7ca8775865f30def730429abb906dc62a91856 Mon Sep 17 00:00:00 2001
From: ylemkimon <mail@ylem.kim>
Date: Thu, 17 Sep 2020 17:36:11 +0900
Subject: [PATCH] fix(npm): merge compatibility in generateBranchConfig (#7290)

Co-authored-by: Rhys Arkins <rhys@arkins.net>
---
 .../__snapshots__/generate.spec.ts.snap       |  2 ++
 .../repository/updates/generate.spec.ts       | 28 +++++++++++++++++++
 lib/workers/repository/updates/generate.ts    |  4 +++
 3 files changed, 34 insertions(+)

diff --git a/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap b/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap
index 471ace38db..67ad999a27 100644
--- a/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap
+++ b/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap
@@ -13,6 +13,7 @@ Object {
   "branchName": "some-branch",
   "canBeUnpublished": false,
   "commitMessage": "",
+  "compatibility": Object {},
   "depName": "some-dep",
   "dependencyDashboardApproval": false,
   "dependencyDashboardPrApproval": false,
@@ -73,6 +74,7 @@ Object {
 | ---------- | --------------- | ----- | ----- |
 | npm        | @types/some-dep | 0.5.7 | 0.5.8 |
 ",
+  "compatibility": Object {},
   "datasource": "npm",
   "depName": "some-dep",
   "dependencyDashboardApproval": false,
diff --git a/lib/workers/repository/updates/generate.spec.ts b/lib/workers/repository/updates/generate.spec.ts
index 4317e68d2d..b176bdfddb 100644
--- a/lib/workers/repository/updates/generate.spec.ts
+++ b/lib/workers/repository/updates/generate.spec.ts
@@ -74,6 +74,9 @@ describe('workers/repository/updates/generate', () => {
           releaseTimestamp: '2017-02-07T20:01:41+00:00',
           canBeUnpublished: false,
           automerge: true,
+          compatibility: {
+            foo: '1.0.0',
+          },
         },
         {
           depName: 'some-other-dep',
@@ -91,6 +94,27 @@ describe('workers/repository/updates/generate', () => {
           releaseTimestamp: '2017-02-06T20:01:41+00:00',
           canBeUnpublished: true,
           automerge: false,
+          compatibility: {
+            foo: '1.0.0',
+            bar: '2.0.0',
+          },
+        },
+        {
+          depName: 'another-dep',
+          groupName: 'some-group',
+          branchName: 'some-branch',
+          prTitle: 'some-title',
+          commitMessageExtra:
+            'to {{#if isMajor}}v{{newMajor}}{{else}}{{#unless isRange}}v{{/unless}}{{newValue}}{{/if}}',
+          foo: 1,
+          newValue: '5.1.2',
+          toVersion: '5.1.2',
+          group: {
+            foo: 2,
+          },
+          releaseTimestamp: '2017-02-06T20:01:41+00:00',
+          canBeUnpublished: true,
+          automerge: false,
         },
       ];
       const res = generateBranchConfig(branch);
@@ -99,6 +123,10 @@ describe('workers/repository/updates/generate', () => {
       expect(res.releaseTimestamp).toEqual('2017-02-07T20:01:41+00:00');
       expect(res.canBeUnpublished).toBe(true);
       expect(res.automerge).toBe(false);
+      expect(res.compatibility).toEqual({
+        foo: '1.0.0',
+        bar: '2.0.0',
+      });
     });
     it('groups multiple upgrades different version', () => {
       const branch = [
diff --git a/lib/workers/repository/updates/generate.ts b/lib/workers/repository/updates/generate.ts
index a53c3a4909..59daac300a 100644
--- a/lib/workers/repository/updates/generate.ts
+++ b/lib/workers/repository/updates/generate.ts
@@ -304,6 +304,10 @@ export function generateBranchConfig(
   config.blockedByPin = config.upgrades.every(
     (upgrade) => upgrade.blockedByPin
   );
+  config.compatibility = Object.assign(
+    {},
+    ...config.upgrades.map((upgrade) => upgrade.compatibility)
+  );
   const tableRows = config.upgrades
     .map((upgrade) => getTableValues(upgrade))
     .filter(Boolean);
-- 
GitLab