diff --git a/lib/config/presets/local/__snapshots__/index.spec.ts.snap b/lib/config/presets/local/__snapshots__/index.spec.ts.snap
index c580f9c3ff40462d5ef593f179335e3e26f2d431..09f1a6658ba302fc99a1b8e69d2a3a8210356539 100644
--- a/lib/config/presets/local/__snapshots__/index.spec.ts.snap
+++ b/lib/config/presets/local/__snapshots__/index.spec.ts.snap
@@ -11,7 +11,11 @@ Array [
 ]
 `;
 
-exports[`config/presets/local/index getPreset() forwards to custom bitbucket-server 2`] = `undefined`;
+exports[`config/presets/local/index getPreset() forwards to custom bitbucket-server 2`] = `
+Object {
+  "resolved": "preset",
+}
+`;
 
 exports[`config/presets/local/index getPreset() forwards to custom gitea 1`] = `
 Array [
@@ -24,7 +28,11 @@ Array [
 ]
 `;
 
-exports[`config/presets/local/index getPreset() forwards to custom gitea 2`] = `undefined`;
+exports[`config/presets/local/index getPreset() forwards to custom gitea 2`] = `
+Object {
+  "resolved": "preset",
+}
+`;
 
 exports[`config/presets/local/index getPreset() forwards to custom github 1`] = `
 Array [
@@ -71,7 +79,11 @@ Array [
 ]
 `;
 
-exports[`config/presets/local/index getPreset() forwards to gitea 2`] = `undefined`;
+exports[`config/presets/local/index getPreset() forwards to gitea 2`] = `
+Object {
+  "resolved": "preset",
+}
+`;
 
 exports[`config/presets/local/index getPreset() forwards to github 1`] = `
 Array [
diff --git a/lib/config/presets/local/index.spec.ts b/lib/config/presets/local/index.spec.ts
index 16aecc2c3fb6925572fa79878dbe37e1d5df5a20..6bc484566c2ebcbaa2fdd73f4b47d1a23f400aec 100644
--- a/lib/config/presets/local/index.spec.ts
+++ b/lib/config/presets/local/index.spec.ts
@@ -5,21 +5,24 @@ import * as _github from '../github';
 import * as _gitlab from '../gitlab';
 import * as local from '.';
 
-jest.mock('../gitlab');
-jest.mock('../github');
-jest.mock('../gitea');
 jest.mock('../bitbucket-server');
+jest.mock('../gitea');
+jest.mock('../github');
+jest.mock('../gitlab');
 
-const gitlab = mocked(_gitlab);
-const github = mocked(_github);
-const gitea = mocked(_gitea);
 const bitbucketServer = mocked(_bitbucketServer);
+const gitea = mocked(_gitea);
+const github = mocked(_github);
+const gitlab = mocked(_gitlab);
 
 describe(getName(__filename), () => {
   beforeEach(() => {
     jest.resetAllMocks();
-    gitlab.getPresetFromEndpoint.mockResolvedValueOnce({ resolved: 'preset' });
-    github.getPresetFromEndpoint.mockResolvedValueOnce({ resolved: 'preset' });
+    const preset = { resolved: 'preset' };
+    bitbucketServer.getPresetFromEndpoint.mockResolvedValueOnce(preset);
+    gitea.getPresetFromEndpoint.mockResolvedValueOnce(preset);
+    github.getPresetFromEndpoint.mockResolvedValueOnce(preset);
+    gitlab.getPresetFromEndpoint.mockResolvedValueOnce(preset);
   });
   describe('getPreset()', () => {
     it('throws for unsupported platform', async () => {
@@ -44,27 +47,42 @@ describe(getName(__filename), () => {
         });
       }).rejects.toThrow();
     });
-    it('forwards to gitlab', async () => {
+
+    it('forwards to custom bitbucket-server', async () => {
       const content = await local.getPreset({
         packageName: 'some/repo',
         presetName: 'default',
         baseConfig: {
-          platform: 'GitLab',
+          platform: 'bitbucket-server',
+          endpoint: 'https://git.example.com',
         },
       });
-      expect(gitlab.getPresetFromEndpoint.mock.calls).toMatchSnapshot();
+      expect(
+        bitbucketServer.getPresetFromEndpoint.mock.calls
+      ).toMatchSnapshot();
       expect(content).toMatchSnapshot();
     });
-    it('forwards to custom gitlab', async () => {
+
+    it('forwards to gitea', async () => {
+      const content = await local.getPreset({
+        packageName: 'some/repo',
+        baseConfig: {
+          platform: 'gitea',
+        },
+      });
+      expect(gitea.getPresetFromEndpoint.mock.calls).toMatchSnapshot();
+      expect(content).toMatchSnapshot();
+    });
+    it('forwards to custom gitea', async () => {
       const content = await local.getPreset({
         packageName: 'some/repo',
         presetName: 'default',
         baseConfig: {
-          platform: 'gitlab',
-          endpoint: 'https://gitlab.example.com/api/v4',
+          platform: 'gitea',
+          endpoint: 'https://api.gitea.example.com',
         },
       });
-      expect(gitlab.getPresetFromEndpoint.mock.calls).toMatchSnapshot();
+      expect(gitea.getPresetFromEndpoint.mock.calls).toMatchSnapshot();
       expect(content).toMatchSnapshot();
     });
 
@@ -91,41 +109,27 @@ describe(getName(__filename), () => {
       expect(content).toMatchSnapshot();
     });
 
-    it('forwards to gitea', async () => {
-      const content = await local.getPreset({
-        packageName: 'some/repo',
-        baseConfig: {
-          platform: 'gitea',
-        },
-      });
-      expect(gitea.getPresetFromEndpoint.mock.calls).toMatchSnapshot();
-      expect(content).toMatchSnapshot();
-    });
-    it('forwards to custom gitea', async () => {
+    it('forwards to gitlab', async () => {
       const content = await local.getPreset({
         packageName: 'some/repo',
         presetName: 'default',
         baseConfig: {
-          platform: 'gitea',
-          endpoint: 'https://api.gitea.example.com',
+          platform: 'GitLab',
         },
       });
-      expect(gitea.getPresetFromEndpoint.mock.calls).toMatchSnapshot();
+      expect(gitlab.getPresetFromEndpoint.mock.calls).toMatchSnapshot();
       expect(content).toMatchSnapshot();
     });
-
-    it('forwards to custom bitbucket-server', async () => {
+    it('forwards to custom gitlab', async () => {
       const content = await local.getPreset({
         packageName: 'some/repo',
         presetName: 'default',
         baseConfig: {
-          platform: 'bitbucket-server',
-          endpoint: 'https://git.example.com',
+          platform: 'gitlab',
+          endpoint: 'https://gitlab.example.com/api/v4',
         },
       });
-      expect(
-        bitbucketServer.getPresetFromEndpoint.mock.calls
-      ).toMatchSnapshot();
+      expect(gitlab.getPresetFromEndpoint.mock.calls).toMatchSnapshot();
       expect(content).toMatchSnapshot();
     });
   });
diff --git a/lib/config/presets/local/index.ts b/lib/config/presets/local/index.ts
index 4a06d9f2274cdb10930531eb42c28403835fc27e..c53ae3d1b98ccef251e253ca30c4530a34587288 100644
--- a/lib/config/presets/local/index.ts
+++ b/lib/config/presets/local/index.ts
@@ -10,6 +10,13 @@ import * as github from '../github';
 import * as gitlab from '../gitlab';
 import type { Preset, PresetConfig } from '../types';
 
+const resolvers = {
+  [PLATFORM_TYPE_BITBUCKET_SERVER]: bitbucketServer,
+  [PLATFORM_TYPE_GITEA]: gitea,
+  [PLATFORM_TYPE_GITHUB]: github,
+  [PLATFORM_TYPE_GITLAB]: gitlab,
+};
+
 export function getPreset({
   packageName: pkgName,
   presetName = 'default',
@@ -20,38 +27,16 @@ export function getPreset({
   if (!platform) {
     throw new Error(`Missing platform config for local preset.`);
   }
-  switch (platform.toLowerCase()) {
-    case PLATFORM_TYPE_GITLAB:
-      return gitlab.getPresetFromEndpoint(
-        pkgName,
-        presetName,
-        presetPath,
-        endpoint
-      );
-    case PLATFORM_TYPE_GITHUB:
-      return github.getPresetFromEndpoint(
-        pkgName,
-        presetName,
-        presetPath,
-        endpoint
-      );
-    case PLATFORM_TYPE_BITBUCKET_SERVER:
-      return bitbucketServer.getPresetFromEndpoint(
-        pkgName,
-        presetName,
-        presetPath,
-        endpoint
-      );
-    case PLATFORM_TYPE_GITEA:
-      return gitea.getPresetFromEndpoint(
-        pkgName,
-        presetName,
-        presetPath,
-        endpoint
-      );
-    default:
-      throw new Error(
-        `Unsupported platform '${baseConfig.platform}' for local preset.`
-      );
+  const resolver = resolvers[platform.toLowerCase()];
+  if (!resolver) {
+    throw new Error(
+      `Unsupported platform '${baseConfig.platform}' for local preset.`
+    );
   }
+  return resolver.getPresetFromEndpoint(
+    pkgName,
+    presetName,
+    presetPath,
+    endpoint
+  );
 }