mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Adapt to changes in injectable
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
1 parent
8a78c73e19
commit
6f0686e9a4
31 files changed
+237
-325
No files matched your search
@@ -18,15 +18,12 @@
|
||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
import type { ApiManager } from "../../../../common/k8s-api/api-manager";
|
||||
import { apiManager } from "../../../../common/k8s-api/api-manager";
|
||||
import type { Injectable } from "@ogre-tools/injectable";
|
||||
import { lifecycleEnum } from "@ogre-tools/injectable";
|
||||
import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
|
||||
|
||||
const apiManagerInjectable: Injectable<ApiManager> = {
|
||||
getDependencies: () => ({}),
|
||||
const apiManagerInjectable = getInjectable({
|
||||
instantiate: () => apiManager,
|
||||
lifecycle: lifecycleEnum.singleton,
|
||||
};
|
||||
});
|
||||
|
||||
export default apiManagerInjectable;
|
||||
@@ -19,23 +19,17 @@
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
import type { Injectable } from "@ogre-tools/injectable";
|
||||
import { lifecycleEnum } from "@ogre-tools/injectable";
|
||||
import type { Cluster } from "../../../../main/cluster";
|
||||
import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
|
||||
import clusterInjectable from "./cluster.injectable";
|
||||
|
||||
interface Dependencies {
|
||||
cluster: Cluster;
|
||||
}
|
||||
const clusterNameInjectable = getInjectable({
|
||||
instantiate: (di) => {
|
||||
const cluster = di.inject(clusterInjectable);
|
||||
|
||||
const clusterNameInjectable: Injectable<string | undefined, Dependencies> = {
|
||||
getDependencies: di => ({
|
||||
cluster: di.inject(clusterInjectable),
|
||||
}),
|
||||
|
||||
instantiate: ({ cluster }) => cluster?.name,
|
||||
return cluster?.name;
|
||||
},
|
||||
|
||||
lifecycle: lifecycleEnum.transient,
|
||||
};
|
||||
});
|
||||
|
||||
export default clusterNameInjectable;
|
||||
@@ -20,14 +20,11 @@
|
||||
*/
|
||||
import { getActiveClusterEntity } from "../../../api/catalog-entity-registry";
|
||||
|
||||
import type { Injectable } from "@ogre-tools/injectable";
|
||||
import { lifecycleEnum } from "@ogre-tools/injectable";
|
||||
import type { Cluster } from "../../../../main/cluster";
|
||||
import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
|
||||
|
||||
const clusterInjectable: Injectable<Cluster | null> = {
|
||||
getDependencies: () => ({}),
|
||||
const clusterInjectable = getInjectable({
|
||||
instantiate: () => getActiveClusterEntity(),
|
||||
lifecycle: lifecycleEnum.transient,
|
||||
};
|
||||
});
|
||||
|
||||
export default clusterInjectable;
|
||||
+3
-5
@@ -19,13 +19,11 @@
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
import { editResourceTab } from "../../dock/edit-resource.store";
|
||||
import type { Injectable } from "@ogre-tools/injectable";
|
||||
import { lifecycleEnum } from "@ogre-tools/injectable";
|
||||
import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
|
||||
|
||||
const editResourceTabInjectable: Injectable<typeof editResourceTab> = {
|
||||
getDependencies: () => ({}),
|
||||
const editResourceTabInjectable = getInjectable({
|
||||
instantiate: () => editResourceTab,
|
||||
lifecycle: lifecycleEnum.singleton,
|
||||
};
|
||||
});
|
||||
|
||||
export default editResourceTabInjectable;
|
||||
@@ -19,13 +19,11 @@
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
import { hideDetails } from "../../kube-detail-params";
|
||||
import type { Injectable } from "@ogre-tools/injectable";
|
||||
import { lifecycleEnum } from "@ogre-tools/injectable";
|
||||
import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
|
||||
|
||||
export const hideDetailsInjectable: Injectable<typeof hideDetails> = {
|
||||
getDependencies: () => ({}),
|
||||
export const hideDetailsInjectable = getInjectable({
|
||||
instantiate: () => hideDetails,
|
||||
lifecycle: lifecycleEnum.singleton,
|
||||
};
|
||||
});
|
||||
|
||||
export default hideDetailsInjectable;
|
||||
+6
-11
@@ -21,23 +21,18 @@
|
||||
import type { KubeObjectMenuRegistry } from "../../../../../extensions/registries";
|
||||
import type { KubeObject } from "../../../../../common/k8s-api/kube-object";
|
||||
|
||||
export interface Dependencies {
|
||||
export const getKubeObjectMenuItems = ({
|
||||
kubeObjectMenuRegistry,
|
||||
kubeObject,
|
||||
}: {
|
||||
kubeObjectMenuRegistry: KubeObjectMenuRegistry;
|
||||
}
|
||||
|
||||
export interface InstantiationParameter {
|
||||
kubeObject: KubeObject;
|
||||
}
|
||||
|
||||
export const getKubeObjectMenuItems = (
|
||||
{ kubeObjectMenuRegistry }: Dependencies,
|
||||
{ kubeObject }: InstantiationParameter,
|
||||
) => {
|
||||
}) => {
|
||||
if (!kubeObject) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return kubeObjectMenuRegistry
|
||||
.getItemsForKind(kubeObject.kind, kubeObject.apiVersion)
|
||||
.map(item => item.components.MenuItem);
|
||||
.map((item) => item.components.MenuItem);
|
||||
};
|
||||
+10
-17
@@ -18,27 +18,20 @@
|
||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
import { Injectable, lifecycleEnum } from "@ogre-tools/injectable";
|
||||
import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
|
||||
import kubeObjectMenuRegistryInjectable from "./kube-object-menu-registry.injectable";
|
||||
|
||||
import {
|
||||
InstantiationParameter,
|
||||
Dependencies,
|
||||
getKubeObjectMenuItems,
|
||||
} from "./get-kube-object-menu-items";
|
||||
import { getKubeObjectMenuItems } from "./get-kube-object-menu-items";
|
||||
import type { KubeObject } from "../../../../../common/k8s-api/kube-object";
|
||||
|
||||
const kubeObjectMenuItemsInjectable: Injectable<
|
||||
ReturnType<typeof getKubeObjectMenuItems>,
|
||||
Dependencies,
|
||||
InstantiationParameter
|
||||
> = {
|
||||
getDependencies: di => ({
|
||||
kubeObjectMenuRegistry: di.inject(kubeObjectMenuRegistryInjectable),
|
||||
}),
|
||||
|
||||
instantiate: getKubeObjectMenuItems,
|
||||
const kubeObjectMenuItemsInjectable = getInjectable({
|
||||
instantiate: (di, { kubeObject }: { kubeObject: KubeObject }) =>
|
||||
getKubeObjectMenuItems({
|
||||
kubeObjectMenuRegistry: di.inject(kubeObjectMenuRegistryInjectable),
|
||||
kubeObject,
|
||||
}),
|
||||
|
||||
lifecycle: lifecycleEnum.transient,
|
||||
};
|
||||
});
|
||||
|
||||
export default kubeObjectMenuItemsInjectable;
|
||||
+3
-5
@@ -19,13 +19,11 @@
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
import { KubeObjectMenuRegistry } from "../../../../../extensions/registries";
|
||||
import type { Injectable } from "@ogre-tools/injectable";
|
||||
import { lifecycleEnum } from "@ogre-tools/injectable";
|
||||
import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
|
||||
|
||||
const kubeObjectMenuRegistryInjectable: Injectable<KubeObjectMenuRegistry> = {
|
||||
getDependencies: () => ({}),
|
||||
const kubeObjectMenuRegistryInjectable = getInjectable({
|
||||
instantiate: () => KubeObjectMenuRegistry.getInstance(),
|
||||
lifecycle: lifecycleEnum.singleton,
|
||||
};
|
||||
});
|
||||
|
||||
export default kubeObjectMenuRegistryInjectable;
|
||||
@@ -55,18 +55,18 @@ describe("kube-object-menu", () => {
|
||||
|
||||
render = renderFor(di);
|
||||
|
||||
di.override(clusterInjectable, {
|
||||
di.override(clusterInjectable, () => ({
|
||||
name: "Some name",
|
||||
} as Cluster);
|
||||
}) as Cluster);
|
||||
|
||||
di.override(apiManagerInjectable, {
|
||||
di.override(apiManagerInjectable, () => ({
|
||||
// eslint-disable-next-line unused-imports/no-unused-vars-ts
|
||||
getStore: api => undefined,
|
||||
} as ApiManager);
|
||||
}) as ApiManager);
|
||||
|
||||
di.override(hideDetailsInjectable, () => {});
|
||||
di.override(hideDetailsInjectable, () => () => {});
|
||||
|
||||
di.override(editResourceTabInjectable, () => ({
|
||||
di.override(editResourceTabInjectable, () => () => ({
|
||||
id: "irrelevant",
|
||||
kind: TabKind.TERMINAL,
|
||||
pinned: false,
|
||||
@@ -93,7 +93,7 @@ describe("kube-object-menu", () => {
|
||||
});
|
||||
|
||||
it("given no cluster, does not crash", () => {
|
||||
di.override(clusterInjectable, null);
|
||||
di.override(clusterInjectable, () => null);
|
||||
|
||||
expect(() => {
|
||||
render(<KubeObjectMenu object={null} toolbar={true} />);
|
||||
@@ -110,7 +110,7 @@ describe("kube-object-menu", () => {
|
||||
|
||||
describe("given kube object", () => {
|
||||
let baseElement: Element;
|
||||
let removeActionMock: AsyncFnMock<Function>;
|
||||
let removeActionMock: AsyncFnMock<() => void>;
|
||||
|
||||
beforeEach(async () => {
|
||||
const objectStub = KubeObject.create({
|
||||
|
||||
Reference in new issue
Block a user