import { assert } from 'chai'; import { SyntheticMouseEvent, Button, Modifier } from '../../../../../lib/experimental/io/events/SyntheticMouseEvent'; describe('experimental.io.events.SyntheticMouseEvent', () => { const e1 = new SyntheticMouseEvent(); const e2 = new SyntheticMouseEvent(100, 100, Button.Left, Button.Left, Modifier.Shift); const e3 = new SyntheticMouseEvent(100, 100, Button.Left, Button.Left, Modifier.Shift); const e4 = new SyntheticMouseEvent(5, -5, Button.Right, Button.Right | Button.Middle, Modifier.Shift | Modifier.Control); it('constructor', () => { assert.strictEqual(e1.modifiers, Modifier.None); assert.strictEqual(e1.x, 0); assert.strictEqual(e1.y, 0); assert.strictEqual(e1.button, Button.None); assert.strictEqual(e1.buttons, Button.None); assert.strictEqual(e2.modifiers, Modifier.Shift); assert.strictEqual(e2.x, 100); assert.strictEqual(e2.y, 100); assert.strictEqual(e2.button, Button.Left); assert.strictEqual(e2.buttons, Button.Left); }); it('create', () => { assert.deepEqual(SyntheticMouseEvent.create(100, 100, Button.Left, Button.Left, Modifier.Shift), e3); }); it('className', () => { assert.strictEqual(e1.className(), SyntheticMouseEvent.className); }); it('testModifier', () => { assert.ok(e1.testModifier(Modifier.None)); assert.ok(e2.testModifier(Modifier.Shift)); assert.ok(!e2.testModifier(Modifier.None)); assert.ok(e4.testModifier(Modifier.Shift)); assert.ok(e4.testModifier(Modifier.Control)); assert.ok(e4.testModifier(Modifier.Shift | Modifier.Control)); assert.ok(!e4.testModifier(Modifier.Alt | Modifier.Shift | Modifier.Control)); assert.ok(!e4.testModifier(Modifier.Alt)); }); it('testButton', () => { assert.ok(e1.testButton(Button.None)); assert.ok(e2.testButton(Button.Left)); assert.ok(!e2.testButton(Button.None)); assert.ok(e4.testButton(Button.Right)); assert.ok(e4.testButton(Button.Middle)); assert.ok(e4.testButton(Button.Right | Button.Middle)); assert.ok(!e4.testButton(Button.Left | Button.Right | Button.Middle)); assert.ok(!e4.testButton(Button.Left)); }); });