From bfc393ef000ea40f519688da62c75c4a2d642b31 Mon Sep 17 00:00:00 2001
From: Sergei Zharinov <zharinov@users.noreply.github.com>
Date: Wed, 29 Jun 2022 09:23:36 +0300
Subject: [PATCH] refactor(fs): Don't proxy `writeFile` function (#16310)

* refactor(fs): Don't proxy `writeFile` function

* Fix

* Update lib/workers/global/index.spec.ts

Co-authored-by: Michael Kriese <michael.kriese@visualon.de>

Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
---
 lib/util/fs/proxies.ts           | 8 --------
 lib/workers/global/index.spec.ts | 7 +++++--
 lib/workers/global/index.ts      | 3 +--
 3 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/lib/util/fs/proxies.ts b/lib/util/fs/proxies.ts
index 3c4e42d330..96cdbf822f 100644
--- a/lib/util/fs/proxies.ts
+++ b/lib/util/fs/proxies.ts
@@ -18,14 +18,6 @@ export function readFile(
   return encoding ? fs.readFile(fileName, encoding) : fs.readFile(fileName);
 }
 
-// istanbul ignore next
-export function writeFile(
-  fileName: string,
-  fileContent: string
-): Promise<void> {
-  return fs.writeFile(fileName, fileContent);
-}
-
 // istanbul ignore next
 export function outputFile(
   file: string,
diff --git a/lib/workers/global/index.spec.ts b/lib/workers/global/index.spec.ts
index 680648a2dc..2ac08c5256 100644
--- a/lib/workers/global/index.spec.ts
+++ b/lib/workers/global/index.spec.ts
@@ -1,6 +1,7 @@
 import { expect } from '@jest/globals';
 import { ERROR, WARN } from 'bunyan';
-import { fs, logger, mocked } from '../../../test/util';
+import * as _fs from 'fs-extra';
+import { logger, mocked } from '../../../test/util';
 import * as _presets from '../../config/presets';
 import { PlatformId } from '../../constants';
 import { CONFIG_PRESETS_INVALID } from '../../constants/error-messages';
@@ -15,6 +16,9 @@ jest.mock('../repository');
 jest.mock('../../util/fs');
 jest.mock('../../config/presets');
 
+jest.mock('fs-extra');
+const fs = mocked(_fs);
+
 // imports are readonly
 const repositoryWorker = _repositoryWorker;
 const configParser: jest.Mocked<typeof _configParser> = _configParser as never;
@@ -176,7 +180,6 @@ describe('workers/global/index', () => {
         endpoint: 'https://github.com/',
         writeDiscoveredRepos: '/tmp/renovate-output.json',
       });
-      fs.writeFile.mockResolvedValueOnce();
 
       expect(await globalWorker.start()).toBe(0);
       expect(fs.writeFile).toHaveBeenCalledTimes(1);
diff --git a/lib/workers/global/index.ts b/lib/workers/global/index.ts
index 70a32e5b6e..8997a11db1 100644
--- a/lib/workers/global/index.ts
+++ b/lib/workers/global/index.ts
@@ -16,7 +16,6 @@ import type {
 import { CONFIG_PRESETS_INVALID } from '../../constants/error-messages';
 import { pkg } from '../../expose.cjs';
 import { getProblems, logger, setMeta } from '../../logger';
-import { writeFile } from '../../util/fs';
 import * as hostRules from '../../util/host-rules';
 import * as repositoryWorker from '../repository';
 import { autodiscoverRepositories } from './autodiscover';
@@ -133,7 +132,7 @@ export async function start(): Promise<number> {
 
     if (is.nonEmptyString(config.writeDiscoveredRepos)) {
       const content = JSON.stringify(config.repositories);
-      await writeFile(config.writeDiscoveredRepos, content);
+      await fs.writeFile(config.writeDiscoveredRepos, content);
       logger.info(
         `Written discovered repositories to ${config.writeDiscoveredRepos}`
       );
-- 
GitLab