scroll-limit.test.ts 784 B

123456789101112131415161718192021222324252627
  1. /**
  2. * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
  3. * SPDX-License-Identifier: MIT
  4. */
  5. import { Rectangle } from '@flowgram.ai/utils';
  6. import { scrollLimit } from '../../src/utils/scroll-limit';
  7. import { createPlaygroundConfigEntity } from '../../__mocks__/renderer.mock';
  8. test('scroll limit', () => {
  9. const config = createPlaygroundConfigEntity();
  10. config.updateConfig({
  11. width: 1668,
  12. height: 527,
  13. clientX: 60,
  14. clientY: 89,
  15. scrollX: 18,
  16. scrollY: -14,
  17. });
  18. const initScrollData = { scrollX: 100, scrollY: -100 };
  19. const res = scrollLimit(initScrollData, [new Rectangle(0, 0, 10, 10)], config, () => ({
  20. scrollX: config.config.scrollX,
  21. scrollY: config.config.scrollY,
  22. }));
  23. expect(res).toEqual({ scrollX: 18, scrollY: -14 });
  24. });