'use strict'; describe('PIXI.interaction.InteractionManager', function () { describe('onClick', function () { function click(stage, x, y) { const renderer = new PIXI.CanvasRenderer(100, 100); renderer.sayHello = () => { /* empty */ }; renderer.render(stage); renderer.plugins.interaction.mapPositionToPoint = (point) => { point.x = x; point.y = y; }; renderer.plugins.interaction.onMouseDown({ clientX: x, clientY: y, preventDefault: sinon.stub() }); renderer.plugins.interaction.onMouseUp({ clientX: x, clientY: y, preventDefault: sinon.stub() }); } it('should call handler when inside', function () { const stage = new PIXI.Container(); const graphics = new PIXI.Graphics(); const clickSpy = sinon.spy(); stage.addChild(graphics); graphics.beginFill(0xFFFFFF); graphics.drawRect(0, 0, 50, 50); graphics.interactive = true; graphics.on('click', clickSpy); click(stage, 10, 10); expect(clickSpy).to.have.been.calledOnce; }); it('should not call handler when outside', function () { const stage = new PIXI.Container(); const graphics = new PIXI.Graphics(); const clickSpy = sinon.spy(); stage.addChild(graphics); graphics.beginFill(0xFFFFFF); graphics.drawRect(0, 0, 50, 50); graphics.interactive = true; graphics.on('click', clickSpy); click(stage, 60, 60); expect(clickSpy).to.not.have.been.called; }); }); });