Skip to content

Commit 9ce804b

Browse files
committed
NXT-4467: add tests and fix lint issue
NXT-4467 (Close version history panel when entering a shared component)
1 parent a77226c commit 9ce804b

File tree

2 files changed

+54
-3
lines changed

2 files changed

+54
-3
lines changed

org.knime.ui.js/src/store/application/__tests__/lifecycle.test.ts

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { createRouter, createWebHistory } from "vue-router";
1515
import { setupHints } from "@knime/components";
1616
import { CURRENT_STATE_VERSION } from "@knime/hub-features/versions";
1717

18+
import { WorkflowInfo } from "@/api/gateway-api/generated-api";
1819
import { isBrowser, isDesktop, runInEnvironment } from "@/environment";
1920
import { APP_ROUTES } from "@/router/appRoutes";
2021
import { router, routes } from "@/router/router";
@@ -324,6 +325,54 @@ describe("application::lifecycle", () => {
324325
expect(mockedAPI.event.subscribeEvent).not.toHaveBeenCalled();
325326
});
326327

328+
it("handles afterSetActivateWorkflow when a workflow is loaded", async () => {
329+
const { lifecycleStore, componentInteractionsStore } = loadStore();
330+
const loadedWF = createWorkflow({
331+
info: { containerId: "root" },
332+
nodes: Object.create({}),
333+
});
334+
335+
mockedAPI.workflow.getWorkflow.mockResolvedValue({
336+
workflow: loadedWF,
337+
snapshotId: "snap",
338+
});
339+
await lifecycleStore.loadWorkflow({
340+
projectId: "wf1",
341+
workflowId: "root:0:12",
342+
});
343+
344+
expect(
345+
componentInteractionsStore.checkForLinkedComponentUpdates,
346+
).toHaveBeenCalledWith({ auto: true });
347+
});
348+
349+
it("closes version panel when entering a linked component", async () => {
350+
const { lifecycleStore, workflowVersionsStore } = loadStore();
351+
352+
// @ts-expect-error - mock getter
353+
workflowVersionsStore.activeProjectVersionsModeStatus = "active";
354+
355+
const loadedWF = createWorkflow({
356+
info: {
357+
containerId: "root",
358+
linked: true,
359+
containerType: WorkflowInfo.ContainerTypeEnum.Component,
360+
},
361+
nodes: Object.create({}),
362+
});
363+
364+
mockedAPI.workflow.getWorkflow.mockResolvedValue({
365+
workflow: loadedWF,
366+
snapshotId: "snap",
367+
});
368+
await lifecycleStore.loadWorkflow({
369+
projectId: "wf1",
370+
workflowId: "root:0:12",
371+
});
372+
373+
expect(workflowVersionsStore.deactivateVersionsMode).toHaveBeenCalled();
374+
});
375+
327376
it("unloads workflow when another one is loaded", async () => {
328377
const { lifecycleStore, workflowStore, selectionStore } = loadStore();
329378
const loadedWF = createWorkflow({

org.knime.ui.js/src/store/application/lifecycle.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import { sleep } from "@knime/utils";
1010
import {
1111
AppState,
1212
type Workflow,
13-
type WorkflowSnapshot,
1413
WorkflowInfo,
14+
type WorkflowSnapshot,
1515
} from "@/api/gateway-api/generated-api";
1616
import { fetchUiStrings as kaiFetchUiStrings } from "@/components/kai/useKaiServer";
1717
import { isDesktop, runInEnvironment } from "@/environment";
@@ -23,8 +23,8 @@ import { useSelectionStore } from "@/store/selection";
2323
import { ratioToZoomLevel, useSettingsStore } from "@/store/settings";
2424
import { useAnnotationInteractionsStore } from "@/store/workflow/annotationInteractions";
2525
import { useComponentInteractionsStore } from "@/store/workflow/componentInteractions";
26-
import { useWorkflowVersionsStore } from "@/store/workflow/workflowVersions";
2726
import { useWorkflowStore } from "@/store/workflow/workflow";
27+
import { useWorkflowVersionsStore } from "@/store/workflow/workflowVersions";
2828
import { encodeString } from "@/util/encodeString";
2929
import { geometry } from "@/util/geometry";
3030
import { setProjectActiveOrThrow } from "@/util/projectUtil";
@@ -597,10 +597,12 @@ export const useLifecycleStore = defineStore("lifecycle", {
597597
WorkflowInfo.ContainerTypeEnum.Component
598598
) {
599599
const versionsStore = useWorkflowVersionsStore();
600+
600601
if (versionsStore.activeProjectVersionsModeStatus !== "inactive") {
601-
void versionsStore.deactivateVersionsMode();
602+
versionsStore.deactivateVersionsMode();
602603
}
603604
}
605+
604606
useComponentInteractionsStore().checkForLinkedComponentUpdates({
605607
auto: true,
606608
});

0 commit comments

Comments
 (0)