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

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