From 2a954377169b2b04e914d69333d9ccb95a3ab82e Mon Sep 17 00:00:00 2001 From: ShaMan123 Date: Wed, 13 Sep 2023 07:45:18 +0530 Subject: [PATCH] add test Update eventData.test.ts --- src/canvas/__tests__/eventData.test.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/canvas/__tests__/eventData.test.ts b/src/canvas/__tests__/eventData.test.ts index e3976a2cde7..81a1074f050 100644 --- a/src/canvas/__tests__/eventData.test.ts +++ b/src/canvas/__tests__/eventData.test.ts @@ -1,7 +1,10 @@ /* eslint-disable no-restricted-globals */ import '../../../jest.extend'; +import type { TPointerEvent } from '../../EventTypeDefs'; import { Point } from '../../Point'; +import { Group } from '../../shapes/Group'; import { IText } from '../../shapes/IText/IText'; +import { FabricObject } from '../../shapes/Object/FabricObject'; import type { TMat2D } from '../../typedefs'; import { Canvas } from '../Canvas'; @@ -100,3 +103,22 @@ describe('Canvas event data', () => { } ); }); + +it('A selected subtarget should not fire an event twice', () => { + const target = new FabricObject(); + const group = new Group([target], { + subTargetCheck: true, + interactive: true, + }); + const canvas = new Canvas(null); + canvas.add(group); + const targetSpy = jest.fn(); + target.on('mousedown', targetSpy); + jest.spyOn(canvas, '_checkTarget').mockReturnValue(true); + canvas.__onMouseDown({ + target: canvas.getSelectionElement(), + clientX: 0, + clientY: 0, + } as unknown as TPointerEvent); + expect(targetSpy).toHaveBeenCalledTimes(1); +});