diff --git a/src/common/setupable-injection-token/setupable-injection-token.ts b/src/common/setupable-injection-token/setupable-injection-token.ts new file mode 100644 index 0000000000..2f13a3d26c --- /dev/null +++ b/src/common/setupable-injection-token/setupable-injection-token.ts @@ -0,0 +1,13 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import { getInjectionToken } from "@ogre-tools/injectable"; + +export interface Setupable { + doSetup: () => Promise | void; +} + +export const setupableInjectionToken = getInjectionToken({ + id: "setupable-injection-token", +}); diff --git a/src/test-utils/get-dis-for-unit-testing.ts b/src/test-utils/get-dis-for-unit-testing.ts index 976117bdf9..df31d042b9 100644 --- a/src/test-utils/get-dis-for-unit-testing.ts +++ b/src/test-utils/get-dis-for-unit-testing.ts @@ -5,6 +5,7 @@ import { getDiForUnitTesting as getRendererDi } from "../renderer/getDiForUnitTesting"; import { getDiForUnitTesting as getMainDi } from "../main/getDiForUnitTesting"; import { overrideIpcBridge } from "./override-ipc-bridge"; +import { setupableInjectionToken } from "../common/setupable-injection-token/setupable-injection-token"; export const getDisForUnitTesting = ({ doGeneralOverrides } = { doGeneralOverrides: false }) => { const rendererDi = getRendererDi({ doGeneralOverrides }); @@ -15,6 +16,17 @@ export const getDisForUnitTesting = ({ doGeneralOverrides } = { doGeneralOverrid return { rendererDi, mainDi, - runSetups: () => Promise.all([rendererDi.runSetups(), mainDi.runSetups()]), + runSetups: () => { + const setupPromises = [ + ...rendererDi.injectMany(setupableInjectionToken), + ...mainDi.injectMany(setupableInjectionToken), + ].map(setupable => setupable.doSetup()); + + return Promise.all([ + rendererDi.runSetups(), + mainDi.runSetups(), + ...setupPromises, + ]); + }, }; };