import { createWorkflowStoreSnapshot } from '../mocks/store.mock' import { PipelineState } from '../pipeline/pipeline.slice' import { createAttributeGlobalId } from '../utils/attribute' import { create, createRelId } from '.' describe('update', () => { it('should update action', () => { const api = create() const snapshot = createWorkflowStoreSnapshot() const relAId = createRelId() const relBId = createRelId() api.attach(relAId, snapshot.actions[0]) api.attach(relBId, snapshot.actions[1]) api.connect(relAId, relBId) const action = api.selectAction(relAId) const attrToProduce = createAttributeGlobalId({ relId: relAId, name: action.rAttributes[0].name, datatype: action.rAttributes[0].datatype, }) const attrToValueProduce = createAttributeGlobalId({ relId: '', name: action.rAttributes[0].name, datatype: action.rAttributes[0].datatype, }) const attrToConsume = createAttributeGlobalId({ relId: 'global', name: action.rAttributes[0].name, datatype: action.rAttributes[0].datatype, }) const attrToValueConsume = createAttributeGlobalId({ relId: '', name: action.rAttributes[0].name, datatype: action.rAttributes[0].datatype, }) const pipelinePayload: Partial = { consume: { [attrToConsume]: attrToValueConsume, }, produce: { [attrToProduce]: attrToValueProduce, }, } const relationPayload = { x: 99, y: 99, label: 'ACTION 777', } api.updateLabels({ lostLabel$1: 'Unknown $1', lostLabel$2: 'Unknown $2', [attrToProduce]: 'New Label', }) api.update(relAId, pipelinePayload, relationPayload) const { pipeline, labels, relations } = api.getState() expect(labels).toEqual({ [attrToProduce]: 'New Label' }) expect(pipeline[0].consume).toEqual(pipelinePayload.consume) expect(pipeline[0].produce).toEqual(pipelinePayload.produce) expect(pipeline[0].params).toEqual({ [action.pAttributes[0].id]: action.pAttributes[0].value, }) expect(relations[0].label).toEqual(relationPayload.label) expect(relations[0].x).toEqual(relationPayload.x) expect(relations[0].y).toEqual(relationPayload.y) }) })