flow-drag-layer.test.ts 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /**
  2. * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
  3. * SPDX-License-Identifier: MIT
  4. */
  5. import { beforeEach, describe, expect, it } from 'vitest';
  6. import { Container, decorate, injectable, type interfaces } from 'inversify';
  7. import {
  8. FlowDocument,
  9. FlowDocumentContainerModule,
  10. FlowDocumentContribution,
  11. } from '@flowgram.ai/document';
  12. import {
  13. createDefaultPlaygroundConfig,
  14. PlaygroundConfig,
  15. PlaygroundContainerModule,
  16. } from '@flowgram.ai/core';
  17. import { FlowRendererRegistry } from '../../src/flow-renderer-registry';
  18. import { FlowRendererContribution } from '../../src/flow-renderer-contribution';
  19. import { FlowDragLayer, FlowRendererContainerModule } from '../../src';
  20. import { flowJson } from '../../__mocks__/flow-json.mock';
  21. import { FlowDocumentMockRegister } from '../../__mocks__/flow-document-container.mock';
  22. class FlowRenderMockRegister implements FlowRendererContribution {
  23. registerRenderer(registry: FlowRendererRegistry): void {
  24. registry.registerLayers(FlowDragLayer);
  25. }
  26. }
  27. decorate(injectable(), FlowRenderMockRegister);
  28. function createDocumentContainer(): interfaces.Container {
  29. const container = new Container();
  30. container.load(FlowDocumentContainerModule);
  31. container.bind(FlowDocumentContribution).to(FlowDocumentMockRegister);
  32. return container;
  33. }
  34. // layer 层 drag entity 单测
  35. describe('flow-drag-layer', () => {
  36. let container = createDocumentContainer();
  37. let document: FlowDocument;
  38. let registry: FlowRendererRegistry;
  39. beforeEach(() => {
  40. container = createDocumentContainer();
  41. container.load(FlowRendererContainerModule);
  42. container.load(PlaygroundContainerModule);
  43. container.bind(FlowRendererContribution).to(FlowRenderMockRegister);
  44. container.bind(PlaygroundConfig).toConstantValue(createDefaultPlaygroundConfig());
  45. document = container.get<FlowDocument>(FlowDocument);
  46. document.fromJSON(flowJson);
  47. registry = container.get<FlowRendererRegistry>(FlowRendererRegistry);
  48. registry.init();
  49. });
  50. // 测试初始化
  51. // it('test ready', () => {
  52. // expect(registry.pipeline.renderer.layers.map(layer => layer?.onReady?.())).toMatchSnapshot();
  53. // });
  54. // 渲染
  55. it('test ready', () => {
  56. registry.pipeline.renderer.layers.forEach(layer => {
  57. expect(layer.render?.()).toMatchSnapshot();
  58. });
  59. });
  60. });