1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Add some tests

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2022-01-21 11:00:12 -05:00
parent 0c1edefd41
commit d2c70519e2

View File

@ -0,0 +1,96 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import type { ConfigurableDependencyInjectionContainer } from "@ogre-tools/injectable";
import { computed } from "mobx";
import type React from "react";
import type { LensRendererExtension } from "../../../../extensions/lens-renderer-extension";
import rendererExtensionsInjectable from "../../../../extensions/renderer-extensions.injectable";
import { getDiForUnitTesting } from "../../../getDiForUnitTesting";
import type { CustomCategoryViewRegistration } from "../custom-views";
import customCategoryViewsInjectable from "../custom-views.injectable";
describe("Custom Category Views", () => {
let di: ConfigurableDependencyInjectionContainer;
beforeEach(() => {
di = getDiForUnitTesting();
});
it("should order items correctly over all extensions", () => {
const component1 = (): React.ReactElement => null;
const component2 = (): React.ReactElement => null;
di.override(rendererExtensionsInjectable, () => computed(() => [
{
customCategoryViews: [
{
components: {
View: component1,
},
group: "foo",
kind: "bar",
priority: 100,
} as CustomCategoryViewRegistration,
],
},
{
customCategoryViews: [
{
components: {
View: component2,
},
group: "foo",
kind: "bar",
priority: 95,
} as CustomCategoryViewRegistration,
],
},
] as LensRendererExtension[]));
const customCategoryViews = di.inject(customCategoryViewsInjectable);
const { after } = customCategoryViews.get().get("foo").get("bar");
expect(after[0].View).toBe(component2);
expect(after[1].View).toBe(component1);
});
it("should put put priority < 50 items in before", () => {
const component1 = (): React.ReactElement => null;
const component2 = (): React.ReactElement => null;
di.override(rendererExtensionsInjectable, () => computed(() => [
{
customCategoryViews: [
{
components: {
View: component1,
},
group: "foo",
kind: "bar",
priority: 40,
} as CustomCategoryViewRegistration,
],
},
{
customCategoryViews: [
{
components: {
View: component2,
},
group: "foo",
kind: "bar",
priority: 95,
} as CustomCategoryViewRegistration,
],
},
] as LensRendererExtension[]));
const customCategoryViews = di.inject(customCategoryViewsInjectable);
const { before } = customCategoryViews.get().get("foo").get("bar");
expect(before[0].View).toBe(component1);
});
});