flow-selector-box-layer.test.tsx 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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 {
  20. FlowSelectorBoxLayer,
  21. FlowRendererContainerModule,
  22. FlowSelectConfigEntity,
  23. } from '../../src';
  24. import { flowJson } from '../../__mocks__/flow-json.mock';
  25. import { FlowDocumentMockRegister } from '../../__mocks__/flow-document-container.mock';
  26. class FlowRenderMockRegister implements FlowRendererContribution {
  27. registerRenderer(registry: FlowRendererRegistry): void {
  28. registry.registerLayers(FlowSelectorBoxLayer);
  29. }
  30. }
  31. decorate(injectable(), FlowRenderMockRegister);
  32. function createDocumentContainer(): interfaces.Container {
  33. const container = new Container();
  34. container.load(FlowDocumentContainerModule);
  35. container.bind(FlowDocumentContribution).to(FlowDocumentMockRegister);
  36. return container;
  37. }
  38. // box layer 单测
  39. describe('flow-selector-box-layer', () => {
  40. let container = createDocumentContainer();
  41. let document: any;
  42. let registry: FlowRendererRegistry;
  43. beforeEach(() => {
  44. container = createDocumentContainer();
  45. container.load(FlowRendererContainerModule);
  46. container.load(PlaygroundContainerModule);
  47. container.bind(FlowRendererContribution).to(FlowRenderMockRegister);
  48. container.bind(PlaygroundConfig).toConstantValue(createDefaultPlaygroundConfig());
  49. container.bind(FlowSelectConfigEntity).toSelf().inSingletonScope();
  50. document = container.get<typeof FlowDocument>(FlowDocument as any);
  51. document.fromJSON(flowJson);
  52. registry = container.get<FlowRendererRegistry>(FlowRendererRegistry);
  53. registry.init();
  54. });
  55. // 渲染, FIXME 补充单测
  56. it('test ready', () => {
  57. registry.pipeline.renderer.layers.forEach(layer => {
  58. // layer.onReady();
  59. expect(layer.render?.()).toMatchSnapshot();
  60. });
  61. });
  62. });