mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
* Convert runMany and runManySync to use injectManyWithMeta Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fixup type errors due to new Runnable requirements Signed-off-by: Sebastian Malton <sebastian@malton.name> * Add documentation for verifyRunnablesAreDAG Signed-off-by: Sebastian Malton <sebastian@malton.name> * Simplify convertToWithIdWith Signed-off-by: Sebastian Malton <sebastian@malton.name> * Move all utility functions to separate package Signed-off-by: Sebastian Malton <sebastian@malton.name> * Move testing utilities to separate package Signed-off-by: Sebastian Malton <sebastian@malton.name> * Move run-many and run-many-sync to separate package Signed-off-by: Sebastian Malton <sebastian@malton.name> * Replace all internal uses of utilities with new packages Signed-off-by: Sebastian Malton <sebastian@malton.name> * Use new @k8slens/run-many package in core Signed-off-by: Sebastian Malton <sebastian@malton.name> * Add dep to open-lens Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fixup type errors Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fixup uses of @k8slens/test-utils Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fixup getGlobalOverride Signed-off-by: Sebastian Malton <sebastian@malton.name> * Move tests to new package too Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fix type errors Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fixup uses of AsyncResult and autoBind Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fixup remaining import issues Signed-off-by: Sebastian Malton <sebastian@malton.name> * Finial fixups to fix build Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fix lint Signed-off-by: Sebastian Malton <sebastian@malton.name> * Revert moving "testUsingFakeTime" to separate package - This fixes tests Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fix integration tests Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fix unit test failing due to spelling fix Signed-off-by: Sebastian Malton <sebastian@malton.name> --------- Signed-off-by: Sebastian Malton <sebastian@malton.name>
81 lines
2.7 KiB
TypeScript
81 lines
2.7 KiB
TypeScript
import {
|
|
createContainer,
|
|
DiContainer,
|
|
getInjectable,
|
|
} from "@ogre-tools/injectable";
|
|
import { registerFeature } from "@k8slens/feature-core";
|
|
import { applicationFeature } from "../feature";
|
|
import { startApplicationInjectionToken } from "./start-application.injectable";
|
|
import * as timeSlots from "./time-slots";
|
|
import asyncFn, { AsyncFnMock } from "@async-fn/jest";
|
|
|
|
describe("starting-of-application", () => {
|
|
let di: DiContainer;
|
|
|
|
let beforeApplicationIsLoadingMock: AsyncFnMock<() => Promise<void>>;
|
|
let onLoadOfApplicationMock: AsyncFnMock<() => Promise<void>>;
|
|
let afterApplicationIsLoadedMock: AsyncFnMock<() => Promise<void>>;
|
|
|
|
beforeEach(() => {
|
|
di = createContainer("irrelevant");
|
|
|
|
registerFeature(di, applicationFeature);
|
|
|
|
beforeApplicationIsLoadingMock = asyncFn();
|
|
onLoadOfApplicationMock = asyncFn();
|
|
afterApplicationIsLoadedMock = asyncFn();
|
|
|
|
const beforeApplicationIsLoadingInjectable = getInjectable({
|
|
id: "before-application-is-loading",
|
|
instantiate: () => ({ run: beforeApplicationIsLoadingMock }),
|
|
injectionToken: timeSlots.beforeApplicationIsLoadingInjectionToken,
|
|
});
|
|
|
|
const onLoadOfApplicationInjectable = getInjectable({
|
|
id: "on-load-of-application",
|
|
instantiate: () => ({ run: onLoadOfApplicationMock }),
|
|
injectionToken: timeSlots.onLoadOfApplicationInjectionToken,
|
|
});
|
|
|
|
const afterApplicationIsLoadedInjectable = getInjectable({
|
|
id: "after-application-is-loaded",
|
|
instantiate: () => ({ run: afterApplicationIsLoadedMock }),
|
|
injectionToken: timeSlots.afterApplicationIsLoadedInjectionToken,
|
|
});
|
|
|
|
di.register(
|
|
beforeApplicationIsLoadingInjectable,
|
|
onLoadOfApplicationInjectable,
|
|
afterApplicationIsLoadedInjectable
|
|
);
|
|
});
|
|
|
|
describe("when application is started", () => {
|
|
beforeEach(() => {
|
|
const startApplication = di.inject(startApplicationInjectionToken);
|
|
|
|
startApplication();
|
|
});
|
|
|
|
it("calls runnables registered in before application is loading", () => {
|
|
expect(beforeApplicationIsLoadingMock).toHaveBeenCalled();
|
|
});
|
|
|
|
describe("when runnables in before application is loading resolve", () => {
|
|
beforeEach(async () => {
|
|
await beforeApplicationIsLoadingMock.resolve();
|
|
});
|
|
|
|
it("calls runnables registered in on load of application", () => {
|
|
expect(onLoadOfApplicationMock).toHaveBeenCalled();
|
|
});
|
|
|
|
it("when runnables in before application is loading resolve, calls runnables registered in after load of application", async () => {
|
|
await onLoadOfApplicationMock.resolve();
|
|
|
|
expect(afterApplicationIsLoadedMock).toHaveBeenCalled();
|
|
});
|
|
});
|
|
});
|
|
});
|