From ff1c176e682997dc4b34e6321a619579a28e0cba Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 21 Mar 2023 14:43:17 -0400 Subject: [PATCH] Fix global override not being complete enough causing tests to fail Signed-off-by: Sebastian Malton --- ...le-model.global-override-for-injectable.ts | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/packages/core/src/common/get-configuration-file-model/get-configuration-file-model.global-override-for-injectable.ts b/packages/core/src/common/get-configuration-file-model/get-configuration-file-model.global-override-for-injectable.ts index 95e2845825..5b83b7b573 100644 --- a/packages/core/src/common/get-configuration-file-model/get-configuration-file-model.global-override-for-injectable.ts +++ b/packages/core/src/common/get-configuration-file-model/get-configuration-file-model.global-override-for-injectable.ts @@ -10,7 +10,7 @@ import getConfigurationFileModelInjectable from "./get-configuration-file-model. import type Config from "conf"; import readJsonSyncInjectable from "../fs/read-json-sync.injectable"; import writeJsonSyncInjectable from "../fs/write-json-sync.injectable"; -import { get, set } from "lodash"; +import { get, has, set } from "lodash"; import semver from "semver"; const MIGRATION_KEY = `__internal__.migrations.version`; @@ -64,7 +64,7 @@ export default getGlobalOverride(getConfigurationFileModelInjectable, (di) => { path: configFilePath, get: (key: string) => get(store, key), set: (key: string, value: unknown) => { - let currentState: object; + let currentState: Partial>; try { currentState = readJsonSync(configFilePath); @@ -78,6 +78,25 @@ export default getGlobalOverride(getConfigurationFileModelInjectable, (di) => { }); store = readJsonSync(configFilePath); }, + delete: (key: string) => { + let currentState: Partial>; + + try { + currentState = readJsonSync(configFilePath); + } catch { + currentState = {}; + } + + delete currentState[key]; + + writeJsonSync(configFilePath, currentState); + store = readJsonSync(configFilePath); + }, + has: (key: string) => has(store, key), + clear: () => { + writeJsonSync(configFilePath, {}); + store = readJsonSync(configFilePath); + }, } as Partial as Config; // Migrate