From ceb81003c025f21368774c6ea5ebf17e8b53b00b Mon Sep 17 00:00:00 2001 From: liujiangyu Date: Thu, 7 Sep 2023 21:41:36 +0800 Subject: [PATCH] chore: add scroll-canvas integration --- .../behaviors-scroll-canvas.spec.ts | 63 ++++++++++++++++++ .../canvas/behaviors-scroll-canvas.png | Bin 0 -> 6733 bytes .../snapshots/svg/behaviors-scroll-canvas.svg | 1 + 3 files changed, 64 insertions(+) create mode 100644 packages/g6/tests/integration/behaviors-scroll-canvas.spec.ts create mode 100644 packages/g6/tests/integration/snapshots/canvas/behaviors-scroll-canvas.png create mode 100644 packages/g6/tests/integration/snapshots/svg/behaviors-scroll-canvas.svg diff --git a/packages/g6/tests/integration/behaviors-scroll-canvas.spec.ts b/packages/g6/tests/integration/behaviors-scroll-canvas.spec.ts new file mode 100644 index 00000000000..ba4f5f3f8e0 --- /dev/null +++ b/packages/g6/tests/integration/behaviors-scroll-canvas.spec.ts @@ -0,0 +1,63 @@ +import { resetEntityCounter } from '@antv/g'; +import scrollCanvas from '../demo/behaviors/activate-relations'; +import './utils/useSnapshotMatchers'; +import { createContext, triggerEvent } from './utils'; + +describe('Scroll canvas behavior', () => { + beforeEach(() => { + /** + * SVG Snapshot testing will generate a unique id for each element. + * Reset to 0 to keep snapshot consistent. + */ + resetEntityCounter(); + }); + + it('should be rendered correctly with Canvas2D', (done) => { + const dir = `${__dirname}/snapshots/canvas`; + const { backgroundCanvas, canvas, transientCanvas, container } = + createContext('canvas', 500, 500); + + const graph = scrollCanvas({ + container, + backgroundCanvas, + canvas, + transientCanvas, + width: 500, + height: 500, + }); + + graph.on('afterlayout', async () => { + await expect(canvas).toMatchCanvasSnapshot( + dir, + 'behaviors-scroll-canvas', + ); + + graph.destroy(); + done(); + }); + }); + + it('should be rendered correctly with SVG', (done) => { + const dir = `${__dirname}/snapshots/svg`; + const { backgroundCanvas, canvas, transientCanvas, container } = + createContext('svg', 500, 500); + + const graph = scrollCanvas({ + container, + backgroundCanvas, + canvas, + transientCanvas, + width: 500, + height: 500, + }); + + graph.on('afterlayout', async () => { + await expect(canvas).toMatchSVGSnapshot( + dir, + 'behaviors-scroll-canvas', + ); + graph.destroy(); + done(); + }); + }); +}); diff --git a/packages/g6/tests/integration/snapshots/canvas/behaviors-scroll-canvas.png b/packages/g6/tests/integration/snapshots/canvas/behaviors-scroll-canvas.png new file mode 100644 index 0000000000000000000000000000000000000000..5d61ffee361edc3be79523b873e52aa2acb5837c GIT binary patch literal 6733 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 mQvN@7;Qv4Ww=node1node2node3node4node5 \ No newline at end of file