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:
Janne SavolainenandMikko Aspiala committed 2021-12-27 14:17:38 +02:00
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;
@@ -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;
@@ -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);
};
@@ -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;
@@ -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({