diff --git a/lib/manager/git-submodules/extract.spec.ts b/lib/manager/git-submodules/extract.spec.ts
index 3304fad5ec19f4f6794ed359248f76c35651914a..4cbd77f9c0bc8ae2958fcc5e66929ded3fe6818c 100644
--- a/lib/manager/git-submodules/extract.spec.ts
+++ b/lib/manager/git-submodules/extract.spec.ts
@@ -1,29 +1,35 @@
 import _simpleGit from 'simple-git/promise';
 import extractPackageFile from './extract';
+import { PackageFile } from '../common';
 
 jest.mock('simple-git/promise');
-const simpleGit: any = _simpleGit;
-const Git = jest.requireActual('simple-git/promise');
+const simpleGit: jest.Mock<Partial<_simpleGit.SimpleGit>> = _simpleGit as never;
+const Git: typeof _simpleGit = jest.requireActual('simple-git/promise');
 
 const localDir = `${__dirname}/__fixtures__`;
 
 describe('lib/manager/gitsubmodules/extract', () => {
   beforeAll(() => {
-    simpleGit.mockReturnValue({
-      subModule() {
-        return Promise.resolve('4b825dc642cb6eb9a060e54bf8d69288fbee4904');
-      },
-      raw(options: string[]) {
-        if (options.includes('remote.origin.url')) {
-          return 'https://github.com/renovatebot/renovate.git';
-        }
-        return Git().raw(options);
-      },
+    simpleGit.mockImplementation((basePath?: string) => {
+      const git = Git(basePath);
+      return {
+        subModule() {
+          return Promise.resolve('4b825dc642cb6eb9a060e54bf8d69288fbee4904');
+        },
+        raw(options: string | string[]): Promise<string> {
+          if (options.includes('remote.origin.url')) {
+            return Promise.resolve(
+              'https://github.com/renovatebot/renovate.git'
+            );
+          }
+          return git.raw(options);
+        },
+      };
     });
   });
   describe('extractPackageFile()', () => {
     it('extracts submodules', async () => {
-      let res;
+      let res: PackageFile;
       expect(
         await extractPackageFile('', '.gitmodules.1', { localDir })
       ).toBeNull();
diff --git a/lib/manager/git-submodules/extract.ts b/lib/manager/git-submodules/extract.ts
index 1753278c46d488202ac10497c77a3a52290b904d..b08ce2b591fab39170b752a26a531f9d1d0d713a 100644
--- a/lib/manager/git-submodules/extract.ts
+++ b/lib/manager/git-submodules/extract.ts
@@ -23,8 +23,8 @@ async function getUrl(
       '--get',
       `submodule.${submoduleName}.url`,
     ])
-  ).trim();
-  if (!path.startsWith('../')) {
+  )?.trim();
+  if (!path?.startsWith('../')) {
     return path;
   }
   const remoteUrl = (
@@ -59,7 +59,7 @@ async function getModules(
       gitModulesPath,
       '--get-regexp',
       'path',
-    ])) || ''
+    ])) ?? /* istanbul ignore next: should never happen */ ''
   )
     .trim()
     .split(/\n/)
@@ -76,7 +76,7 @@ async function getModules(
 }
 
 export default async function extractPackageFile(
-  content: string,
+  _content: string,
   fileName: string,
   config: ManagerConfig
 ): Promise<PackageFile | null> {