From c7c5dfd30fd638058154c1f519b0f9d6ef449135 Mon Sep 17 00:00:00 2001
From: Sourav Das <souravdasslg95@gmail.com>
Date: Fri, 17 Jan 2020 12:56:42 +0530
Subject: [PATCH] feat(constants): Platform Constants (#5179)

---
 lib/config/definitions.ts                     | 19 +++++++++++++------
 lib/constants/platfroms.ts                    |  5 +++++
 lib/workers/pr/body/config-description.ts     |  3 ++-
 test/config/env.spec.ts                       | 12 ++++++++----
 test/config/migration.spec.ts                 |  3 ++-
 test/platform/index.spec.ts                   |  5 +++--
 test/workers/global/autodiscover.spec.ts      |  9 +++++----
 test/workers/global/index.spec.ts             |  8 ++++++--
 test/workers/pr/index.spec.ts                 |  3 ++-
 .../workers/repository/finalise/prune.spec.ts |  3 ++-
 test/workers/repository/master-issue.spec.ts  |  3 ++-
 11 files changed, 50 insertions(+), 23 deletions(-)
 create mode 100644 lib/constants/platfroms.ts

diff --git a/lib/config/definitions.ts b/lib/config/definitions.ts
index c10561b22a..e5d9132161 100644
--- a/lib/config/definitions.ts
+++ b/lib/config/definitions.ts
@@ -1,4 +1,11 @@
 import { RenovateConfigStage } from './common';
+import {
+  PLATFORM_TYPE_AZURE,
+  PLATFORM_TYPE_BITBUCKET,
+  PLATFORM_TYPE_BITBUCKET_SERVER,
+  PLATFORM_TYPE_GITHUB,
+  PLATFORM_TYPE_GITLAB,
+} from '../constants/platfroms';
 
 export interface RenovateOptionBase {
   admin?: boolean;
@@ -399,13 +406,13 @@ const options: RenovateOptions[] = [
     description: 'Platform type of repository',
     type: 'string',
     allowedValues: [
-      'azure',
-      'bitbucket',
-      'bitbucket-server',
-      'github',
-      'gitlab',
+      PLATFORM_TYPE_AZURE,
+      PLATFORM_TYPE_BITBUCKET,
+      PLATFORM_TYPE_BITBUCKET_SERVER,
+      PLATFORM_TYPE_GITHUB,
+      PLATFORM_TYPE_GITLAB,
     ],
-    default: 'github',
+    default: PLATFORM_TYPE_GITHUB,
     admin: true,
   },
   {
diff --git a/lib/constants/platfroms.ts b/lib/constants/platfroms.ts
new file mode 100644
index 0000000000..f3ba498bc4
--- /dev/null
+++ b/lib/constants/platfroms.ts
@@ -0,0 +1,5 @@
+export const PLATFORM_TYPE_AZURE = 'azure';
+export const PLATFORM_TYPE_BITBUCKET = 'bitbucket';
+export const PLATFORM_TYPE_BITBUCKET_SERVER = 'bitbucket-server';
+export const PLATFORM_TYPE_GITHUB = 'github';
+export const PLATFORM_TYPE_GITLAB = 'gitlab';
diff --git a/lib/workers/pr/body/config-description.ts b/lib/workers/pr/body/config-description.ts
index 86ee60ac38..7960e6ca69 100644
--- a/lib/workers/pr/body/config-description.ts
+++ b/lib/workers/pr/body/config-description.ts
@@ -1,6 +1,7 @@
 import { platform } from '../../../platform';
 import { emojify } from '../../../util/emoji';
 import { PrBodyConfig } from './common';
+import { PLATFORM_TYPE_GITHUB } from '../../../constants/platfroms';
 
 export async function getPrConfigDescription(
   config: PrBodyConfig
@@ -46,7 +47,7 @@ export async function getPrConfigDescription(
   } else {
     prBody += 'Whenever PR becomes conflicted';
   }
-  if (config.platform === 'github') {
+  if (config.platform === PLATFORM_TYPE_GITHUB) {
     prBody += `, or if you modify the PR title to begin with "\`rebase!\`".\n\n`;
   } else {
     prBody += '.\n\n';
diff --git a/test/config/env.spec.ts b/test/config/env.spec.ts
index 401b387d56..6ba410b286 100644
--- a/test/config/env.spec.ts
+++ b/test/config/env.spec.ts
@@ -1,5 +1,9 @@
 import * as env from '../../lib/config/env';
 import { RenovateOptions } from '../../lib/config/definitions';
+import {
+  PLATFORM_TYPE_BITBUCKET,
+  PLATFORM_TYPE_GITLAB,
+} from '../../lib/constants/platfroms';
 
 describe('config/env', () => {
   describe('.getConfig(env)', () => {
@@ -59,14 +63,14 @@ describe('config/env', () => {
     });
     it('supports GitLab token', () => {
       const envParam: NodeJS.ProcessEnv = {
-        RENOVATE_PLATFORM: 'gitlab',
+        RENOVATE_PLATFORM: PLATFORM_TYPE_GITLAB,
         RENOVATE_TOKEN: 'a gitlab.com token',
       };
       expect(env.getConfig(envParam)).toMatchSnapshot();
     });
     it('supports GitLab custom endpoint', () => {
       const envParam: NodeJS.ProcessEnv = {
-        RENOVATE_PLATFORM: 'gitlab',
+        RENOVATE_PLATFORM: PLATFORM_TYPE_GITLAB,
         RENOVATE_TOKEN: 'a gitlab token',
         RENOVATE_ENDPOINT: 'a gitlab endpoint',
       };
@@ -89,7 +93,7 @@ describe('config/env', () => {
     });
     it('supports Bitbucket token', () => {
       const envParam: NodeJS.ProcessEnv = {
-        RENOVATE_PLATFORM: 'bitbucket',
+        RENOVATE_PLATFORM: PLATFORM_TYPE_BITBUCKET,
         RENOVATE_ENDPOINT: 'a bitbucket endpoint',
         RENOVATE_USERNAME: 'some-username',
         RENOVATE_PASSWORD: 'app-password',
@@ -98,7 +102,7 @@ describe('config/env', () => {
     });
     it('supports Bitbucket username/password', () => {
       const envParam: NodeJS.ProcessEnv = {
-        RENOVATE_PLATFORM: 'bitbucket',
+        RENOVATE_PLATFORM: PLATFORM_TYPE_BITBUCKET,
         RENOVATE_ENDPOINT: 'a bitbucket endpoint',
         RENOVATE_USERNAME: 'some-username',
         RENOVATE_PASSWORD: 'app-password',
diff --git a/test/config/migration.spec.ts b/test/config/migration.spec.ts
index 1a9fb6d8e1..00467f1e84 100644
--- a/test/config/migration.spec.ts
+++ b/test/config/migration.spec.ts
@@ -1,6 +1,7 @@
 import * as configMigration from '../../lib/config/migration';
 import { getConfig } from '../../lib/config/defaults';
 import { RenovateConfig } from '../../lib/config';
+import { PLATFORM_TYPE_GITHUB } from '../../lib/constants/platfroms';
 
 const defaultConfig = getConfig();
 
@@ -10,7 +11,7 @@ describe('config/migration', () => {
       const config: RenovateConfig = {
         endpoints: [{}],
         enabled: true,
-        platform: 'github',
+        platform: PLATFORM_TYPE_GITHUB,
         hostRules: [
           {
             platform: 'docker',
diff --git a/test/platform/index.spec.ts b/test/platform/index.spec.ts
index 22fd26ac57..27aa7399a0 100644
--- a/test/platform/index.spec.ts
+++ b/test/platform/index.spec.ts
@@ -6,6 +6,7 @@ import * as bitbucketServer from '../../lib/platform/bitbucket-server';
 import { PLATFORM_NOT_FOUND } from '../../lib/constants/error-messages';
 
 import * as platform from '../../lib/platform';
+import { PLATFORM_TYPE_BITBUCKET } from '../../lib/constants/platfroms';
 
 jest.unmock('../../lib/platform');
 
@@ -24,7 +25,7 @@ describe('platform', () => {
   });
   it('initializes', async () => {
     const config = {
-      platform: 'bitbucket',
+      platform: PLATFORM_TYPE_BITBUCKET,
       gitAuthor: 'user@domain.com',
       username: 'abc',
       password: '123',
@@ -33,7 +34,7 @@ describe('platform', () => {
   });
   it('initializes no author', async () => {
     const config = {
-      platform: 'bitbucket',
+      platform: PLATFORM_TYPE_BITBUCKET,
       username: 'abc',
       password: '123',
     };
diff --git a/test/workers/global/autodiscover.spec.ts b/test/workers/global/autodiscover.spec.ts
index 83da940a9a..15a4221f4a 100644
--- a/test/workers/global/autodiscover.spec.ts
+++ b/test/workers/global/autodiscover.spec.ts
@@ -2,6 +2,7 @@ import { autodiscoverRepositories } from '../../../lib/workers/global/autodiscov
 import * as platform from '../../../lib/platform';
 import * as _hostRules from '../../../lib/util/host-rules';
 import * as _ghApi from '../../../lib/platform/github';
+import { PLATFORM_TYPE_GITHUB } from '../../../lib/constants/platfroms';
 
 jest.mock('../../../lib/platform/github');
 jest.unmock('../../../lib/platform');
@@ -16,7 +17,7 @@ describe('lib/workers/global/autodiscover', () => {
     jest.resetAllMocks();
     config = {};
     await platform.initPlatform({
-      platform: 'github',
+      platform: PLATFORM_TYPE_GITHUB,
       token: 'abc123',
       endpoint: 'endpoint',
     });
@@ -26,7 +27,7 @@ describe('lib/workers/global/autodiscover', () => {
   });
   it('autodiscovers github but empty', async () => {
     config.autodiscover = true;
-    config.platform = 'github';
+    config.platform = PLATFORM_TYPE_GITHUB;
     hostRules.find = jest.fn(() => ({
       token: 'abc',
     }));
@@ -36,7 +37,7 @@ describe('lib/workers/global/autodiscover', () => {
   });
   it('autodiscovers github repos', async () => {
     config.autodiscover = true;
-    config.platform = 'github';
+    config.platform = PLATFORM_TYPE_GITHUB;
     hostRules.find = jest.fn(() => ({
       token: 'abc',
     }));
@@ -47,7 +48,7 @@ describe('lib/workers/global/autodiscover', () => {
   it('filters autodiscovered github repos', async () => {
     config.autodiscover = true;
     config.autodiscoverFilter = 'project/re*';
-    config.platform = 'github';
+    config.platform = PLATFORM_TYPE_GITHUB;
     hostRules.find = jest.fn(() => ({
       token: 'abc',
     }));
diff --git a/test/workers/global/index.spec.ts b/test/workers/global/index.spec.ts
index 36a9cb2a4a..db9bb94b7f 100644
--- a/test/workers/global/index.spec.ts
+++ b/test/workers/global/index.spec.ts
@@ -3,6 +3,10 @@ import * as _repositoryWorker from '../../../lib/workers/repository';
 import * as _configParser from '../../../lib/config';
 import * as _platform from '../../../lib/platform';
 import * as _limits from '../../../lib/workers/global/limits';
+import {
+  PLATFORM_TYPE_GITHUB,
+  PLATFORM_TYPE_GITLAB,
+} from '../../../lib/constants/platfroms';
 
 jest.mock('../../../lib/workers/repository');
 
@@ -77,7 +81,7 @@ describe('lib/workers/global', () => {
     it('github', async () => {
       configParser.parseConfigs.mockResolvedValueOnce({
         repositories: ['a'],
-        platform: 'github',
+        platform: PLATFORM_TYPE_GITHUB,
         endpoint: 'https://github.com/',
       });
       await globalWorker.start();
@@ -87,7 +91,7 @@ describe('lib/workers/global', () => {
     it('gitlab', async () => {
       configParser.parseConfigs.mockResolvedValueOnce({
         repositories: [{ repository: 'a' }],
-        platform: 'gitlab',
+        platform: PLATFORM_TYPE_GITLAB,
         endpoint: 'https://my.gitlab.com/',
       });
       await globalWorker.start();
diff --git a/test/workers/pr/index.spec.ts b/test/workers/pr/index.spec.ts
index a056263dc6..6a32103aba 100644
--- a/test/workers/pr/index.spec.ts
+++ b/test/workers/pr/index.spec.ts
@@ -3,6 +3,7 @@ import * as _changelogHelper from '../../../lib/workers/pr/changelog';
 import { getConfig } from '../../../lib/config/defaults';
 import { platform as _platform, Pr } from '../../../lib/platform';
 import { mocked } from '../../util';
+import { PLATFORM_TYPE_GITLAB } from '../../../lib/constants/platfroms';
 
 const changelogHelper = mocked(_changelogHelper);
 const platform = mocked(_platform);
@@ -427,7 +428,7 @@ describe('workers/pr', () => {
       platform.getBranchLastCommitTime.mockResolvedValueOnce(new Date());
       config.prCreation = 'not-pending';
       config.artifactErrors = [{}];
-      config.platform = 'gitlab';
+      config.platform = PLATFORM_TYPE_GITLAB;
       const pr = await prWorker.ensurePr(config);
       expect(pr).toMatchObject({ displayNumber: 'New Pull Request' });
     });
diff --git a/test/workers/repository/finalise/prune.spec.ts b/test/workers/repository/finalise/prune.spec.ts
index cf0e6a8802..001348bda9 100644
--- a/test/workers/repository/finalise/prune.spec.ts
+++ b/test/workers/repository/finalise/prune.spec.ts
@@ -1,11 +1,12 @@
 import * as cleanup from '../../../../lib/workers/repository/finalise/prune';
 import { platform, RenovateConfig, getConfig } from '../../../util';
+import { PLATFORM_TYPE_GITHUB } from '../../../../lib/constants/platfroms';
 
 let config: RenovateConfig;
 beforeEach(() => {
   jest.resetAllMocks();
   config = getConfig();
-  config.platform = 'github';
+  config.platform = PLATFORM_TYPE_GITHUB;
   config.errors = [];
   config.warnings = [];
 });
diff --git a/test/workers/repository/master-issue.spec.ts b/test/workers/repository/master-issue.spec.ts
index e40ac92f52..f5b74921eb 100644
--- a/test/workers/repository/master-issue.spec.ts
+++ b/test/workers/repository/master-issue.spec.ts
@@ -5,12 +5,13 @@ import * as masterIssue from '../../../lib/workers/repository/master-issue';
 import { RenovateConfig, getConfig, platform } from '../../util';
 import { BranchConfig, PrUpgrade } from '../../../lib/workers/common';
 import { Pr } from '../../../lib/platform';
+import { PLATFORM_TYPE_GITHUB } from '../../../lib/constants/platfroms';
 
 let config: RenovateConfig;
 beforeEach(() => {
   jest.resetAllMocks();
   config = getConfig();
-  config.platform = 'github';
+  config.platform = PLATFORM_TYPE_GITHUB;
   config.errors = [];
   config.warnings = [];
 });
-- 
GitLab