diff --git a/apps/backend/src/app/workflow/workflow.service.spec.ts b/apps/backend/src/app/workflow/workflow.service.spec.ts index c925a84e..db4f65ae 100644 --- a/apps/backend/src/app/workflow/workflow.service.spec.ts +++ b/apps/backend/src/app/workflow/workflow.service.spec.ts @@ -3,6 +3,9 @@ import { UniqueConstraintViolationException } from "@mikro-orm/core"; import { Test, TestingModule } from "@nestjs/testing"; +import { NodeBehaviorType } from "~/lib/common/app/node/dtos/behaviors/node-behavior.type"; +import { NodeTriggerType } from "~/lib/common/app/node/dtos/behaviors/triggers"; +import { NodeKindType } from "~/lib/common/app/node/dtos/kind/node-kind.type"; import { WorkflowCreateDto, WorkflowUpdateDto @@ -15,10 +18,12 @@ import { WorkflowService } from "./workflow.service"; import { DbTestHelper } from "../../../test/db-test"; import { OrmModule } from "../../orm/orm.module"; import { GraphService } from "../graph/graph.service"; +import { NodeService } from "../node/node.service"; describe("WorkflowService", () => { let dbTest: DbTestHelper; let graphService: GraphService; + let nodeService: NodeService; let service: WorkflowService; let db: typeof BASE_SEED; @@ -30,8 +35,9 @@ describe("WorkflowService", () => { dbTest = new DbTestHelper(module); db = dbTest.db as never; - service = module.get(WorkflowService); + service = module.get(WorkflowService); graphService = module.get(GraphService); + nodeService = module.get(NodeService); }); afterAll(() => dbTest.close()); @@ -41,7 +47,7 @@ describe("WorkflowService", () => { }); describe("Activation", () => { - beforeAll(() => dbTest.refresh()); + beforeEach(() => dbTest.refresh()); it("should activate a workflow", async () => { const [{ _id }] = db.workflows; @@ -56,6 +62,34 @@ describe("WorkflowService", () => { WorkflowNoTriggerException ); }); + + it("should activate a workflow with a node-reference to a trigger", async () => { + const [, { __graph, _id }] = db.workflows; + const base = await nodeService.create({ + behavior: { + trigger: { cron: "* * * 0 12", type: NodeTriggerType.CRON }, + type: NodeBehaviorType.TRIGGER + }, + kind: { active: true, type: NodeKindType.TEMPLATE }, + name: "trigger00" + }); + + await nodeService.create({ + behavior: { + __node: base._id, + type: NodeBehaviorType.REFERENCE + }, + kind: { + __graph, + position: { x: 0, y: 0 }, + type: NodeKindType.VERTEX + }, + name: "ref" + }); + await expect( + service.update(_id, { active: true }) + ).resolves.toBeDefined(); + }); }); describe("With Graph", () => {