flow-node-transition-data.spec.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
  2. import { baseMockAddBranch } from '../flow.mock';
  3. import { createDocumentContainer } from '../flow-document-container.mock';
  4. import { FlowDocument } from '../../src/flow-document';
  5. import { FlowNodeTransitionData } from '../../src/datas';
  6. describe('flow-node-transition-data', () => {
  7. let container = createDocumentContainer();
  8. let document: FlowDocument;
  9. const originSetTimeout = setTimeout;
  10. beforeEach(() => {
  11. vi.stubGlobal('setTimeout', (fn: any) => {
  12. fn();
  13. return 1;
  14. });
  15. container = createDocumentContainer();
  16. document = container.get<FlowDocument>(FlowDocument);
  17. document.fromJSON(baseMockAddBranch, true);
  18. document.transformer.refresh();
  19. });
  20. afterEach(() => {
  21. vi.stubGlobal('setTimeout', originSetTimeout);
  22. document.dispose();
  23. });
  24. it('get lines and labels for all nodes', () => {
  25. const allNodeTransitionInfo: any = {};
  26. document.getAllNodes().forEach((_node) => {
  27. const transitionData = _node.getData(FlowNodeTransitionData)!;
  28. allNodeTransitionInfo[_node.id] = {
  29. lines: transitionData.lines,
  30. labels: transitionData.labels,
  31. };
  32. });
  33. expect(allNodeTransitionInfo).toMatchSnapshot();
  34. });
  35. });