mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
fixing tests
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
This commit is contained in:
parent
19259bf537
commit
f03cb6457a
@ -89,7 +89,7 @@ describe("installing update", () => {
|
||||
});
|
||||
|
||||
it("notifies the user that checking for updates is happening", () => {
|
||||
expect(showInfoNotificationMock).toHaveBeenCalledWith("Checking for updates...");
|
||||
expect(rendered.getByTestId("auto-update-component")).toHaveTextContent("Checking for updates...");
|
||||
});
|
||||
|
||||
it("renders", () => {
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { computed } from "mobx";
|
||||
import React from "react";
|
||||
import { AutoUpdateComponent } from "./auto-update-status-bar-item";
|
||||
import { statusBarItemInjectionToken } from "./status-bar-item-injection-token";
|
||||
|
||||
@ -11,7 +12,7 @@ const autoUpdateStatusBarItemInjectable = getInjectable({
|
||||
id: "quit-app-separator-tray-item",
|
||||
|
||||
instantiate: () => ({
|
||||
component: AutoUpdateComponent,
|
||||
component: () => <AutoUpdateComponent data-testid="auto-update-component" />,
|
||||
position: "left" as const,
|
||||
visible: computed(() => true),
|
||||
}),
|
||||
@ -73,7 +73,12 @@ const downloadSucceeded = (version: string) => <div>{`Download for version ${ver
|
||||
const idle = () => <></>;
|
||||
|
||||
|
||||
export const NonInjectedAutoUpdateComponent = observer(({ progressOfUpdateDownload, discoveredVersionState, downloadingUpdateState, checkingForUpdatesState }: Dependencies) => {
|
||||
export const NonInjectedAutoUpdateComponent = observer(({
|
||||
progressOfUpdateDownload,
|
||||
discoveredVersionState,
|
||||
downloadingUpdateState,
|
||||
checkingForUpdatesState,
|
||||
}: Dependencies) => {
|
||||
const discoveredVersion = discoveredVersionState.value.get();
|
||||
|
||||
if (downloadingUpdateState.value.get()) {
|
||||
|
||||
@ -12,6 +12,7 @@ import { statusBarItemInjectionToken } from "./status-bar-item-injection-token";
|
||||
import type { StatusBarRegistration } from "./status-bar-registration";
|
||||
import React from "react";
|
||||
import getRandomIdInjectable from "../../../common/utils/get-random-id.injectable";
|
||||
import logger from "../../../common/logger";
|
||||
|
||||
const statusBarItemRegistratorInjectable = getInjectable({
|
||||
id: "status-bar-item-registrator",
|
||||
@ -36,10 +37,11 @@ const toItemInjectableFor = (extension: LensRendererExtension, getRandomId: () =
|
||||
let component: React.ComponentType;
|
||||
let position: "left" | "right";
|
||||
|
||||
if (registration.item) {
|
||||
if (registration?.item) {
|
||||
const { item } = registration;
|
||||
|
||||
// default for old API is "right"
|
||||
position = "right";
|
||||
component =
|
||||
() => (
|
||||
<>
|
||||
@ -50,7 +52,7 @@ const toItemInjectableFor = (extension: LensRendererExtension, getRandomId: () =
|
||||
}
|
||||
</>
|
||||
);
|
||||
} else if (registration.components) {
|
||||
} else if (registration?.components) {
|
||||
const { position: pos = "right", Item } = registration.components;
|
||||
|
||||
if (pos !== "left" && pos !== "right") {
|
||||
@ -58,10 +60,11 @@ const toItemInjectableFor = (extension: LensRendererExtension, getRandomId: () =
|
||||
}
|
||||
|
||||
position = pos;
|
||||
|
||||
component = Item;
|
||||
} else {
|
||||
// throw?
|
||||
logger.warn("StatusBarRegistration must have valid item or components field");
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
return [getInjectable({
|
||||
|
||||
@ -5,10 +5,6 @@
|
||||
|
||||
import React from "react";
|
||||
import "@testing-library/jest-dom/extend-expect";
|
||||
import { StatusBar } from "./status-bar";
|
||||
import { getDiForUnitTesting } from "../../getDiForUnitTesting";
|
||||
import type { DiRender } from "../test-utils/renderFor";
|
||||
import { renderFor } from "../test-utils/renderFor";
|
||||
import type { IObservableArray } from "mobx";
|
||||
import { computed, observable } from "mobx";
|
||||
import type { DiContainer } from "@ogre-tools/injectable";
|
||||
@ -16,7 +12,9 @@ import type { StatusBarItems } from "./status-bar-items.injectable";
|
||||
import statusBarItemsInjectable from "./status-bar-items.injectable";
|
||||
import { LensRendererExtension } from "../../../extensions/lens-renderer-extension";
|
||||
import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable";
|
||||
import rendererExtensionsInjectable from "../../../extensions/renderer-extensions.injectable";
|
||||
import type { ApplicationBuilder } from "../test-utils/get-application-builder";
|
||||
import { getApplicationBuilder } from "../test-utils/get-application-builder";
|
||||
import getRandomIdInjectable from "../../../common/utils/get-random-id.injectable";
|
||||
|
||||
class SomeTestExtension extends LensRendererExtension {
|
||||
constructor(statusBarItems: IObservableArray<any>) {
|
||||
@ -35,21 +33,29 @@ class SomeTestExtension extends LensRendererExtension {
|
||||
}
|
||||
|
||||
describe("<StatusBar />", () => {
|
||||
let render: DiRender;
|
||||
let di: DiContainer;
|
||||
let statusBarItems: IObservableArray<any>;
|
||||
let applicationBuilder: ApplicationBuilder;
|
||||
|
||||
beforeEach(() => {
|
||||
beforeEach(async () => {
|
||||
statusBarItems = observable.array([]);
|
||||
di = getDiForUnitTesting({ doGeneralOverrides: true });
|
||||
render = renderFor(di);
|
||||
|
||||
applicationBuilder = getApplicationBuilder();
|
||||
|
||||
applicationBuilder.beforeApplicationStart(({ rendererDi }) => {
|
||||
rendererDi.unoverride(getRandomIdInjectable);
|
||||
rendererDi.permitSideEffects(getRandomIdInjectable);
|
||||
});
|
||||
|
||||
applicationBuilder.extensions.renderer.enable(new SomeTestExtension(statusBarItems));
|
||||
|
||||
di = applicationBuilder.dis.rendererDi;
|
||||
|
||||
di.override(directoryForUserDataInjectable, () => "some-directory-for-user-data");
|
||||
di.override(rendererExtensionsInjectable, () => computed(() => [new SomeTestExtension(statusBarItems)]));
|
||||
});
|
||||
|
||||
it("renders w/o errors", () => {
|
||||
const { container } = render(<StatusBar />);
|
||||
it("renders w/o errors", async () => {
|
||||
const { container } = await applicationBuilder.render();
|
||||
|
||||
expect(container).toBeInstanceOf(HTMLElement);
|
||||
});
|
||||
@ -62,13 +68,13 @@ describe("<StatusBar />", () => {
|
||||
[],
|
||||
[{}],
|
||||
{},
|
||||
])("renders w/o errors when registrations are not type compliant (%p)", val => {
|
||||
])("renders w/o errors when registrations are not type compliant (%p)", async val => {
|
||||
statusBarItems.replace([val]);
|
||||
|
||||
expect(() => render(<StatusBar />)).not.toThrow();
|
||||
await expect(applicationBuilder.render()).resolves.toBeTruthy();
|
||||
});
|
||||
|
||||
it("renders items [{item: React.ReactNode}] (4.0.0-rc.1)", () => {
|
||||
it("renders items [{item: React.ReactNode}] (4.0.0-rc.1)", async () => {
|
||||
const testId = "testId";
|
||||
const text = "heee";
|
||||
|
||||
@ -77,12 +83,12 @@ describe("<StatusBar />", () => {
|
||||
left: [],
|
||||
}) as StatusBarItems));
|
||||
|
||||
const { getByTestId } = render(<StatusBar />);
|
||||
const { getByTestId } = await applicationBuilder.render();
|
||||
|
||||
expect(getByTestId(testId)).toHaveTextContent(text);
|
||||
});
|
||||
|
||||
it("renders items [{item: () => React.ReactNode}] (4.0.0-rc.1+)", () => {
|
||||
it("renders items [{item: () => React.ReactNode}] (4.0.0-rc.1+)", async () => {
|
||||
const testId = "testId";
|
||||
const text = "heee";
|
||||
|
||||
@ -90,13 +96,13 @@ describe("<StatusBar />", () => {
|
||||
item: () => <span data-testid={testId} >{text}</span>,
|
||||
}]);
|
||||
|
||||
const { getByTestId } = render(<StatusBar />);
|
||||
const { getByTestId } = await applicationBuilder.render();
|
||||
|
||||
expect(getByTestId(testId)).toHaveTextContent(text);
|
||||
});
|
||||
|
||||
|
||||
it("sort positioned items properly", () => {
|
||||
it("sort positioned items properly", async () => {
|
||||
statusBarItems.replace([
|
||||
{
|
||||
components: {
|
||||
@ -123,7 +129,7 @@ describe("<StatusBar />", () => {
|
||||
},
|
||||
]);
|
||||
|
||||
const { getAllByTestId } = render(<StatusBar />);
|
||||
const { getAllByTestId } = await applicationBuilder.render();
|
||||
const elems = getAllByTestId("sortedElem");
|
||||
const positions = elems.map(elem => elem.textContent);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user