import { createWorkflowStoreSnapshot } from '../mocks/store.mock' import { create, createRelId } from '.' describe('attach', () => { it('should attach actions', () => { const api = create() const snapshot = createWorkflowStoreSnapshot() api.attach(createRelId(), snapshot.actions[0]) api.attach(createRelId(), snapshot.actions[1]) api.attach(createRelId(), snapshot.actions[2]) api.attach(createRelId(), snapshot.actions[2]) api.attach(createRelId(), snapshot.actions[2]) const state = api.getState() api.disconnect(state.relations[2].id) api.remove(state.relations[2].id) expect(createRelId()).toHaveLength(7) expect(api.selectActionsCost()).toEqual(0) const { actions, relations, pipeline } = api.getState() expect(actions).toHaveLength(3) expect(relations).toHaveLength(4) expect(pipeline).toHaveLength(4) }) it('should attach actions in correct order', () => { const api = create() const snapshot = createWorkflowStoreSnapshot() const relAId = createRelId() const relBId = createRelId() const relCId = createRelId() api.attach(relCId, snapshot.actions[2]) api.attach(relBId, snapshot.actions[1]) api.attach(relAId, snapshot.actions[0]) api.connect(relAId, relBId) api.connect(relBId, relCId) const state = api.getState() const normalizedState = api.selectNormalizedState() const finalState = { ...state, ...normalizedState, } expect(finalState.actions.map(act => act.type)).toEqual([ 'source', 'action', 'action', ]) expect(finalState.relations.map(rel => rel.id)).toEqual([ relAId, relBId, relCId, ]) expect(finalState.pipeline.map(pl => pl.id)).toEqual([ relAId, relBId, relCId, ]) }) })