From 7903d51776c0a19c860012c42464e8fd39e618c7 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Thu, 1 Apr 2021 06:59:43 +0200
Subject: [PATCH] fix: catch unknown datasource early (#9344)

---
 lib/workers/repository/process/lookup/index.spec.ts | 5 +++++
 lib/workers/repository/process/lookup/index.ts      | 6 +++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/lib/workers/repository/process/lookup/index.spec.ts b/lib/workers/repository/process/lookup/index.spec.ts
index eb9c5d866f..fbee93dd5f 100644
--- a/lib/workers/repository/process/lookup/index.spec.ts
+++ b/lib/workers/repository/process/lookup/index.spec.ts
@@ -51,6 +51,11 @@ describe('workers/repository/process/lookup', () => {
   });
 
   describe('.lookupUpdates()', () => {
+    it('returns null if unknown datasource', async () => {
+      config.depName = 'some-dep';
+      config.datasource = 'does not exist';
+      expect((await lookup.lookupUpdates(config)).updates).toEqual([]);
+    });
     it('returns rollback for pinned version', async () => {
       config.currentValue = '0.9.99';
       config.depName = 'q';
diff --git a/lib/workers/repository/process/lookup/index.ts b/lib/workers/repository/process/lookup/index.ts
index 0c5e6c69f6..8d4374e2a0 100644
--- a/lib/workers/repository/process/lookup/index.ts
+++ b/lib/workers/repository/process/lookup/index.ts
@@ -1,6 +1,7 @@
 import type { ValidationMessage } from '../../../../config/types';
 import {
   Release,
+  getDatasourceList,
   getDefaultVersioning,
   getDigest,
   getPkgReleases,
@@ -45,7 +46,10 @@ export async function lookupUpdates(
   );
   const res: UpdateResult = { updates: [], warnings: [] } as any;
   // istanbul ignore if
-  if (!isGetPkgReleasesConfig(config)) {
+  if (
+    !isGetPkgReleasesConfig(config) ||
+    !getDatasourceList().includes(datasource)
+  ) {
     res.skipReason = SkipReason.InvalidConfig;
     return res;
   }
-- 
GitLab