mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
80 lines
3.1 KiB
TypeScript
80 lines
3.1 KiB
TypeScript
import { createPinia, setActivePinia } from "pinia";
|
|
|
|
import type { Connection, InputTerminal, OutputTerminal } from "@/stores/workflowConnectionStore";
|
|
import { getTerminalId, useConnectionStore } from "@/stores/workflowConnectionStore";
|
|
import type { NewStep } from "@/stores/workflowStepStore";
|
|
import { useWorkflowStepStore } from "@/stores/workflowStepStore";
|
|
|
|
const workflowStepZero: NewStep = {
|
|
input_connections: {},
|
|
inputs: [],
|
|
name: "a step",
|
|
outputs: [],
|
|
post_job_actions: {},
|
|
tool_state: {},
|
|
type: "tool",
|
|
workflow_outputs: [],
|
|
};
|
|
|
|
const workflowStepOne: NewStep = { ...workflowStepZero };
|
|
|
|
const inputTerminal: InputTerminal = {
|
|
stepId: 1,
|
|
name: "input_name",
|
|
connectorType: "input",
|
|
};
|
|
|
|
const outputTerminal: OutputTerminal = {
|
|
stepId: 0,
|
|
name: "output_name",
|
|
connectorType: "output",
|
|
};
|
|
|
|
const connection: Connection = {
|
|
input: inputTerminal,
|
|
output: outputTerminal,
|
|
};
|
|
|
|
describe("Connection Store", () => {
|
|
beforeEach(() => {
|
|
setActivePinia(createPinia());
|
|
const workflowStepStore = useWorkflowStepStore("mock-workflow");
|
|
workflowStepStore.addStep(workflowStepZero);
|
|
workflowStepStore.addStep(workflowStepOne);
|
|
});
|
|
|
|
it("adds connection", () => {
|
|
const connectionStore = useConnectionStore("mock-workflow");
|
|
expect(connectionStore.connections.length).toBe(0);
|
|
connectionStore.addConnection(connection);
|
|
expect(connectionStore.connections.length).toBe(1);
|
|
});
|
|
it("removes connection", () => {
|
|
const connectionStore = useConnectionStore("mock-workflow");
|
|
connectionStore.addConnection(connection);
|
|
connectionStore.removeConnection(inputTerminal);
|
|
expect(connectionStore.connections.length).toBe(0);
|
|
});
|
|
it("finds connections for steps", () => {
|
|
const connectionStore = useConnectionStore("mock-workflow");
|
|
expect(connectionStore.getConnectionsForStep(0)).toStrictEqual([]);
|
|
expect(connectionStore.getConnectionsForStep(1)).toStrictEqual([]);
|
|
connectionStore.addConnection(connection);
|
|
expect(connectionStore.getConnectionsForStep(0)).toStrictEqual([connection]);
|
|
expect(connectionStore.getConnectionsForStep(1)).toStrictEqual([connection]);
|
|
connectionStore.removeConnection(connection.input);
|
|
expect(connectionStore.getConnectionsForStep(0)).toStrictEqual([]);
|
|
expect(connectionStore.getConnectionsForStep(1)).toStrictEqual([]);
|
|
});
|
|
it("finds output terminals for input terminal", () => {
|
|
const connectionStore = useConnectionStore("mock-workflow");
|
|
expect(connectionStore.getOutputTerminalsForInputTerminal(getTerminalId(connection.input))).toStrictEqual([]);
|
|
connectionStore.addConnection(connection);
|
|
expect(connectionStore.getOutputTerminalsForInputTerminal(getTerminalId(connection.input))).toStrictEqual([
|
|
connection.output,
|
|
]);
|
|
connectionStore.removeConnection(connection.input);
|
|
expect(connectionStore.getOutputTerminalsForInputTerminal(getTerminalId(connection.input))).toStrictEqual([]);
|
|
});
|
|
});
|