From 7d54d7bc628c68b9bbbac545b581a6a37d8621ce Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Mon, 13 Apr 2020 13:02:38 +0200
Subject: [PATCH] refactor: PackageUpdateResult newValue string

---
 lib/manager/common.ts                                 |  4 ++--
 lib/manager/travis/__snapshots__/package.spec.ts.snap | 10 ++--------
 lib/manager/travis/package.ts                         |  5 ++---
 lib/manager/travis/update.spec.ts                     |  8 ++++----
 lib/manager/travis/update.ts                          |  2 +-
 5 files changed, 11 insertions(+), 18 deletions(-)

diff --git a/lib/manager/common.ts b/lib/manager/common.ts
index 8bdb65973b..9f87a6a62b 100644
--- a/lib/manager/common.ts
+++ b/lib/manager/common.ts
@@ -53,8 +53,8 @@ export interface PackageUpdateConfig {
 }
 
 export interface PackageUpdateResult {
-  newValue: string[];
-  newMajor: string;
+  newValue: string;
+  newMajor: number;
   isRange: boolean;
   sourceUrl: string;
 }
diff --git a/lib/manager/travis/__snapshots__/package.spec.ts.snap b/lib/manager/travis/__snapshots__/package.spec.ts.snap
index cd4245bee9..6d37099dc3 100644
--- a/lib/manager/travis/__snapshots__/package.spec.ts.snap
+++ b/lib/manager/travis/__snapshots__/package.spec.ts.snap
@@ -5,10 +5,7 @@ Array [
   Object {
     "isRange": true,
     "newMajor": 12,
-    "newValue": Array [
-      "10.0.1",
-      "12.3.0",
-    ],
+    "newValue": "10.0.1,12.3.0",
     "sourceUrl": "https://github.com/nodejs/node",
   },
 ]
@@ -19,10 +16,7 @@ Array [
   Object {
     "isRange": true,
     "newMajor": 12,
-    "newValue": Array [
-      "10",
-      "12",
-    ],
+    "newValue": "10,12",
     "sourceUrl": "https://github.com/nodejs/node",
   },
 ]
diff --git a/lib/manager/travis/package.ts b/lib/manager/travis/package.ts
index 5a59f18d7c..28d31dc560 100644
--- a/lib/manager/travis/package.ts
+++ b/lib/manager/travis/package.ts
@@ -100,12 +100,11 @@ export async function getPackageUpdates(
     }
   }
   logger.debug({ supportPolicy }, `supportPolicy`);
-  // TODO: `newValue` is a (string | number)[] !
   let newValue: any[] = (supportPolicy as (keyof NodeJsPolicies)[])
     .map((policy) => policies[policy])
     .reduce((result, policy) => result.concat(policy), [])
     .sort((a, b) => a - b);
-  const newMajor = newValue[newValue.length - 1];
+  const newMajor: number = newValue[newValue.length - 1];
   if (config.rangeStrategy === 'pin' || isVersion(config.currentValue[0])) {
     const versions = (
       await getPkgReleases({
@@ -130,7 +129,7 @@ export async function getPackageUpdates(
   }
   return [
     {
-      newValue,
+      newValue: newValue.join(','),
       newMajor,
       isRange: true,
       sourceUrl: 'https://github.com/nodejs/node',
diff --git a/lib/manager/travis/update.spec.ts b/lib/manager/travis/update.spec.ts
index fa8efab247..8e91d243c8 100644
--- a/lib/manager/travis/update.spec.ts
+++ b/lib/manager/travis/update.spec.ts
@@ -13,7 +13,7 @@ describe('manager/travis/update', () => {
       // TODO: should be `Upgrade`
       const upgrade: any = {
         currentValue: ['8', '6', '4'],
-        newValue: [6, 8],
+        newValue: '6,8',
       };
       const res = updateDependency({ fileContent: content, upgrade });
       expect(res).toMatchSnapshot();
@@ -22,7 +22,7 @@ describe('manager/travis/update', () => {
       // TODO: should be `Upgrade`
       const upgrade: any = {
         currentValue: [8, 6, 4],
-        newValue: [6, 8],
+        newValue: '6,8',
       };
       const res = updateDependency({
         fileContent: 'hello: world',
@@ -34,7 +34,7 @@ describe('manager/travis/update', () => {
       // TODO: should be `Upgrade`
       const upgrade: any = {
         currentValue: ['6'],
-        newValue: [6, 8],
+        newValue: '6,8',
       };
       const res = updateDependency({
         fileContent: 'node_js:\n  - "6"\n',
@@ -46,7 +46,7 @@ describe('manager/travis/update', () => {
       // TODO: should be `Upgrade`
       const upgrade: any = {
         currentValue: [8, 6, 4],
-        newValue: '6',
+        newValue: 6,
       };
       const res = updateDependency({ fileContent: content, upgrade });
       expect(res).toBeNull();
diff --git a/lib/manager/travis/update.ts b/lib/manager/travis/update.ts
index 089ad98ccc..127ce8777d 100644
--- a/lib/manager/travis/update.ts
+++ b/lib/manager/travis/update.ts
@@ -21,7 +21,7 @@ export function updateDependency({
     }
     let newString = `node_js:\n`;
     // TODO: `newValue` is a string!
-    (upgrade.newValue as any).forEach((version) => {
+    upgrade.newValue.split(',').forEach((version) => {
       newString += `${indent}- ${quote}${version}${quote}\n`;
     });
     return fileContent.replace(/node_js:(\n\s+-[^\n]+)+\n/, newString);
-- 
GitLab