UNPKG

wonder.js

Version:
459 lines (457 loc) 175 kB
'use strict'; var Curry = require("bs-platform/lib/js/curry.js"); var Sinon = require("wonder-bs-sinon/lib/js/src/sinon.js"); var Sinon$1 = require("sinon"); var Caml_array = require("bs-platform/lib/js/caml_array.js"); var Caml_option = require("bs-platform/lib/js/caml_option.js"); var Wonder_jest = require("wonder-bs-jest/lib/js/src/wonder_jest.js"); var EventTool$Wonderjs = require("./tool/EventTool.js"); var ArrayService$Wonderjs = require("../../../../src/service/atom/ArrayService.js"); var MainStateTool$Wonderjs = require("../../../tool/service/state/MainStateTool.js"); var OptionService$Wonderjs = require("../../../../src/service/atom/OptionService.js"); var ManageEventAPI$Wonderjs = require("../../../../src/api/event/ManageEventAPI.js"); var MouseEventTool$Wonderjs = require("./tool/MouseEventTool.js"); var TouchEventTool$Wonderjs = require("./tool/TouchEventTool.js"); var CustomEventTool$Wonderjs = require("./tool/CustomEventTool.js"); var NoWorkerJobTool$Wonderjs = require("../../../tool/service/job/no_worker/NoWorkerJobTool.js"); var BrowserDetectTool$Wonderjs = require("../../../tool/service/browserDetect/BrowserDetectTool.js"); var KeyboardEventTool$Wonderjs = require("./tool/KeyboardEventTool.js"); var EventCameraControllerTool$Wonderjs = require("../../../tool/service/camera_controller/EventCameraControllerTool.js"); Wonder_jest.describe("InitEventJob", (function (param) { var sandbox = Sinon.getSandboxDefaultVal(/* () */0); MainStateTool$Wonderjs.createState(/* () */0); beforeEach((function () { sandbox[0] = Sinon$1.sandbox.create(); return /* () */0; })); afterEach((function () { return Curry._1(Sinon.restoreSandbox, sandbox[0]); })); Wonder_jest.describe("bind dom event", (function (param) { Wonder_jest.describe("bind mouse event", (function (param) { var _testMouseEvent = function (mouseEventName, mouseDomEventName) { Wonder_jest.test("test bind", (function (param) { var state = MouseEventTool$Wonderjs.prepare(sandbox, undefined, undefined, undefined, undefined, /* () */0); var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(state); var value = /* record */[/* contents */0]; var state$2 = ManageEventAPI$Wonderjs.onMouseEvent(mouseEventName, 0, (function ($$event, state) { value[0] = 1; return state; }), state$1); var state$3 = MainStateTool$Wonderjs.setState(state$2); EventTool$Wonderjs.triggerDomEvent("" + (String(mouseDomEventName) + ""), EventTool$Wonderjs.getPointEventBindedDom(state$3), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.restore(state$3); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), 1); })); return Wonder_jest.describe("test unbind by handleFunc", (function (param) { Wonder_jest.test("test", (function (param) { var state = MouseEventTool$Wonderjs.prepare(sandbox, undefined, undefined, undefined, undefined, /* () */0); var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(state); var value = /* record */[/* contents */0]; var handleFunc = function ($$event, state) { value[0] = value[0] + 1 | 0; return state; }; var state$2 = ManageEventAPI$Wonderjs.onMouseEvent(mouseEventName, 0, handleFunc, state$1); var state$3 = ManageEventAPI$Wonderjs.offMouseEventByHandleFunc(mouseEventName, handleFunc, state$2); var state$4 = MainStateTool$Wonderjs.setState(state$3); EventTool$Wonderjs.triggerDomEvent("" + (String(mouseDomEventName) + ""), EventTool$Wonderjs.getPointEventBindedDom(state$4), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.restore(state$4); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), 0); })); return Wonder_jest.test("test unbind one handleFunc of the eventName", (function (param) { var state = MouseEventTool$Wonderjs.prepare(sandbox, undefined, undefined, undefined, undefined, /* () */0); var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(state); var value = /* record */[/* contents */0]; var handleFunc = function ($$event, state) { value[0] = value[0] + 1 | 0; return state; }; var state$2 = ManageEventAPI$Wonderjs.onMouseEvent(mouseEventName, 0, handleFunc, state$1); var state$3 = ManageEventAPI$Wonderjs.onMouseEvent(mouseEventName, 0, (function ($$event, state) { value[0] = value[0] + 10 | 0; return state; }), state$2); var state$4 = ManageEventAPI$Wonderjs.offMouseEventByHandleFunc(mouseEventName, handleFunc, state$3); var state$5 = MainStateTool$Wonderjs.setState(state$4); EventTool$Wonderjs.triggerDomEvent("" + (String(mouseDomEventName) + ""), EventTool$Wonderjs.getPointEventBindedDom(state$5), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.restore(state$5); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), 10); })); })); }; Wonder_jest.describe("bind contextmenu event", (function (param) { return Wonder_jest.test("preventDefault", (function (param) { var state = EventCameraControllerTool$Wonderjs.prepareMouseEvent(sandbox); var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(state); var preventDefaultFunc = Sinon.createEmptyStubWithJsObjSandbox(sandbox); var stopPropagationFunc = Sinon.createEmptyStubWithJsObjSandbox(sandbox); var state$2 = MainStateTool$Wonderjs.setState(state$1); EventTool$Wonderjs.triggerDomEvent("contextmenu", EventTool$Wonderjs.getBody(state$2), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, preventDefaultFunc, stopPropagationFunc, /* () */0)); EventTool$Wonderjs.restore(state$2); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[ Sinon.getCallCount(preventDefaultFunc), Sinon.getCallCount(stopPropagationFunc) ]), /* tuple */[ 1, 1 ]); })); })); Wonder_jest.describe("bind mousedown event", (function (param) { _testMouseEvent(/* MouseDown */2, "mousedown"); Wonder_jest.describe("test mouse event", (function (param) { Wonder_jest.describe("test locationInView", (function (param) { Wonder_jest.test("test view has no offsetParent", (function (param) { var state = MouseEventTool$Wonderjs.prepare(sandbox, 1, 2, undefined, undefined, /* () */0); var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(state); var valueX = /* record */[/* contents */0]; var valueY = /* record */[/* contents */0]; var state$2 = ManageEventAPI$Wonderjs.onMouseEvent(/* MouseDown */2, 0, (function ($$event, state) { var match = $$event[/* locationInView */2]; valueX[0] = match[0]; valueY[0] = match[1]; return state; }), state$1); var state$3 = MainStateTool$Wonderjs.setState(state$2); EventTool$Wonderjs.triggerDomEvent("mousedown", EventTool$Wonderjs.getPointEventBindedDom(state$3), MouseEventTool$Wonderjs.buildMouseEvent(10, 20, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.restore(state$3); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[ valueX[0], valueY[0] ]), /* tuple */[ 9, 18 ]); })); return Wonder_jest.test("test view has offsetParent", (function (param) { var state = MouseEventTool$Wonderjs.prepare(sandbox, 1, 2, { offsetLeft: 11, offsetTop: 12, offsetParent: undefined }, undefined, /* () */0); var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(state); var valueX = /* record */[/* contents */0]; var valueY = /* record */[/* contents */0]; var state$2 = ManageEventAPI$Wonderjs.onMouseEvent(/* MouseDown */2, 0, (function ($$event, state) { var match = $$event[/* locationInView */2]; valueX[0] = match[0]; valueY[0] = match[1]; return state; }), state$1); var state$3 = MainStateTool$Wonderjs.setState(state$2); EventTool$Wonderjs.triggerDomEvent("mousedown", EventTool$Wonderjs.getPointEventBindedDom(state$3), MouseEventTool$Wonderjs.buildMouseEvent(10, 20, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.restore(state$3); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[ valueX[0], valueY[0] ]), /* tuple */[ -2, 6 ]); })); })); Wonder_jest.describe("test button", (function (param) { var _test = function (eventButton, targetButton) { var state = MouseEventTool$Wonderjs.prepare(sandbox, undefined, undefined, undefined, undefined, /* () */0); var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(state); var button = /* record */[/* contents : Right */2]; var state$2 = ManageEventAPI$Wonderjs.onMouseEvent(/* MouseDown */2, 0, (function ($$event, state) { button[0] = $$event[/* button */3]; return state; }), state$1); var state$3 = MainStateTool$Wonderjs.setState(state$2); EventTool$Wonderjs.triggerDomEvent("mousedown", EventTool$Wonderjs.getPointEventBindedDom(state$3), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, eventButton, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.restore(state$3); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](button[0]), targetButton); }; Wonder_jest.test("test NoButton", (function (param) { return _test(0, /* NoButton */0); })); Wonder_jest.test("test Left", (function (param) { return _test(1, /* Left */1); })); Wonder_jest.test("test Center", (function (param) { return _test(2, /* Center */3); })); return Wonder_jest.test("test Right", (function (param) { return _test(3, /* Right */2); })); })); Wonder_jest.describe("test movementDelta", (function (param) { Wonder_jest.describe("if is pointer locked", (function (param) { return Wonder_jest.test("get data from event.movementX/movementY", (function (param) { var state = MouseEventTool$Wonderjs.prepare(sandbox, undefined, undefined, undefined, undefined, /* () */0); MouseEventTool$Wonderjs.setPointerLocked(); var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(state); var valueX = /* record */[/* contents */0]; var valueY = /* record */[/* contents */0]; var state$2 = ManageEventAPI$Wonderjs.onMouseEvent(/* MouseDown */2, 0, (function ($$event, state) { var match = $$event[/* movementDelta */5]; valueX[0] = match[0]; valueY[0] = match[1]; return state; }), state$1); var state$3 = MainStateTool$Wonderjs.setState(state$2); EventTool$Wonderjs.triggerDomEvent("mousedown", EventTool$Wonderjs.getPointEventBindedDom(state$3), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, 1, 2, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.restore(state$3); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[ valueX[0], valueY[0] ]), /* tuple */[ 1, 2 ]); })); })); return Wonder_jest.describe("else, compute", (function (param) { var _test = function (param, param$1, param$2) { var state = MouseEventTool$Wonderjs.prepare(sandbox, undefined, undefined, undefined, undefined, /* () */0); MouseEventTool$Wonderjs.setNotPointerLocked(); var state$1 = MouseEventTool$Wonderjs.setLastXY(param[0], param[1], state); var state$2 = NoWorkerJobTool$Wonderjs.execInitJobs(state$1); var valueX = /* record */[/* contents */0]; var valueY = /* record */[/* contents */0]; var state$3 = ManageEventAPI$Wonderjs.onMouseEvent(/* MouseDown */2, 0, (function ($$event, state) { var match = $$event[/* movementDelta */5]; valueX[0] = match[0]; valueY[0] = match[1]; return state; }), state$2); var state$4 = MainStateTool$Wonderjs.setState(state$3); EventTool$Wonderjs.triggerDomEvent("mousedown", EventTool$Wonderjs.getPointEventBindedDom(state$4), MouseEventTool$Wonderjs.buildMouseEvent(param$1[0], param$1[1], undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.restore(state$4); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[ valueX[0], valueY[0] ]), /* tuple */[ param$2[0], param$2[1] ]); }; Wonder_jest.test("test has no lastX, lastY", (function (param) { return _test(/* tuple */[ undefined, undefined ], /* tuple */[ 0, 0 ], /* tuple */[ 0, 0 ]); })); return Wonder_jest.test("test has lastX, lastY", (function (param) { return _test(/* tuple */[ 1, 2 ], /* tuple */[ 10, 11 ], /* tuple */[ 9, 9 ]); })); })); })); Wonder_jest.describe("test wheel", (function (param) { var _test = function (mouseEvent, targetWheel) { var state = MouseEventTool$Wonderjs.prepare(sandbox, undefined, undefined, undefined, undefined, /* () */0); var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(state); var wheel = /* record */[/* contents */0]; var state$2 = ManageEventAPI$Wonderjs.onMouseEvent(/* MouseDown */2, 0, (function ($$event, state) { wheel[0] = $$event[/* wheel */4]; return state; }), state$1); var state$3 = MainStateTool$Wonderjs.setState(state$2); EventTool$Wonderjs.triggerDomEvent("mousedown", EventTool$Wonderjs.getPointEventBindedDom(state$3), mouseEvent); EventTool$Wonderjs.restore(state$3); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](wheel[0]), targetWheel); }; Wonder_jest.describe("if event.detail exist", (function (param) { Wonder_jest.test("if event.detail !== 0, use it", (function (param) { return _test(MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, 2, undefined, undefined, undefined, /* () */0), -2); })); return Wonder_jest.test("else, use event.wheelDelta", (function (param) { return _test(MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, 0, 120, undefined, undefined, /* () */0), 1); })); })); Wonder_jest.test("else, use event.wheelDelta", (function (param) { return _test(MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, Caml_option.some(undefined), 120, undefined, undefined, /* () */0), 1); })); return Wonder_jest.test("else, return 0", (function (param) { return _test(MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, Caml_option.some(undefined), Caml_option.some(undefined), undefined, undefined, /* () */0), 0); })); })); return Wonder_jest.describe("test other data", (function (param) { return Wonder_jest.test("test name, location", (function (param) { var state = MouseEventTool$Wonderjs.prepare(sandbox, undefined, undefined, undefined, undefined, /* () */0); var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(state); var name = /* record */[/* contents : MouseUp */3]; var valueX = /* record */[/* contents */0]; var valueY = /* record */[/* contents */0]; var state$2 = ManageEventAPI$Wonderjs.onMouseEvent(/* MouseDown */2, 0, (function ($$event, state) { var match = $$event[/* location */1]; valueX[0] = match[0]; valueY[0] = match[1]; name[0] = $$event[/* name */0]; return state; }), state$1); var state$3 = MainStateTool$Wonderjs.setState(state$2); EventTool$Wonderjs.triggerDomEvent("mousedown", EventTool$Wonderjs.getPointEventBindedDom(state$3), MouseEventTool$Wonderjs.buildMouseEvent(10, 20, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.restore(state$3); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[ name[0], valueX[0], valueY[0] ]), /* tuple */[ /* MouseDown */2, 10, 20 ]); })); })); })); Wonder_jest.describe("test priority", (function (param) { return Wonder_jest.test("the higher priority handleFunc is executed first", (function (param) { var state = MouseEventTool$Wonderjs.prepare(sandbox, undefined, undefined, undefined, undefined, /* () */0); var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(state); var value = /* record */[/* contents */2]; var state$2 = ManageEventAPI$Wonderjs.onMouseEvent(/* MouseDown */2, 0, (function ($$event, state) { value[0] = value[0] - 2 | 0; return state; }), state$1); var state$3 = ManageEventAPI$Wonderjs.onMouseEvent(/* MouseDown */2, 1, (function ($$event, state) { value[0] = (value[0] << 1); return state; }), state$2); var state$4 = MainStateTool$Wonderjs.setState(state$3); EventTool$Wonderjs.triggerDomEvent("mousedown", EventTool$Wonderjs.getPointEventBindedDom(state$4), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.restore(state$4); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), 2); })); })); return Wonder_jest.test("if browser is unknown, fatal", (function (param) { var state = MouseEventTool$Wonderjs.prepare(sandbox, undefined, undefined, undefined, BrowserDetectTool$Wonderjs.setUnknown, /* () */0); return Wonder_jest.Expect[/* toThrowMessage */21]("unknown browser", Wonder_jest.Expect[/* expect */0]((function (param) { NoWorkerJobTool$Wonderjs.execInitJobs(state); return /* () */0; }))); })); })); Wonder_jest.describe("bind mouseup event", (function (param) { return _testMouseEvent(/* MouseUp */3, "mouseup"); })); Wonder_jest.describe("bind click event", (function (param) { return _testMouseEvent(/* Click */1, "click"); })); Wonder_jest.describe("bind mousewheel event", (function (param) { return _testMouseEvent(/* MouseWheel */5, "mousewheel"); })); Wonder_jest.describe("bind mousemove event", (function (param) { _testMouseEvent(/* MouseMove */4, "mousemove"); return Wonder_jest.describe("test mouse event", (function (param) { return Wonder_jest.describe("test movementDelta", (function (param) { return Wonder_jest.test("set lastX, lastY after handle", (function (param) { var state = MouseEventTool$Wonderjs.prepare(sandbox, undefined, undefined, undefined, undefined, /* () */0); MouseEventTool$Wonderjs.setNotPointerLocked(); var state$1 = MouseEventTool$Wonderjs.setLastXY(undefined, undefined, state); var state$2 = NoWorkerJobTool$Wonderjs.execInitJobs(state$1); var valueX = /* record */[/* contents */0]; var valueY = /* record */[/* contents */0]; var state$3 = ManageEventAPI$Wonderjs.onMouseEvent(/* MouseMove */4, 0, (function ($$event, state) { var match = $$event[/* movementDelta */5]; valueX[0] = valueX[0] + match[0] | 0; valueY[0] = valueY[0] + match[1] | 0; return state; }), state$2); var state$4 = MainStateTool$Wonderjs.setState(state$3); EventTool$Wonderjs.triggerDomEvent("mousemove", EventTool$Wonderjs.getPointEventBindedDom(state$4), MouseEventTool$Wonderjs.buildMouseEvent(10, 20, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.triggerDomEvent("mousemove", EventTool$Wonderjs.getPointEventBindedDom(state$4), MouseEventTool$Wonderjs.buildMouseEvent(30, 50, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.restore(state$4); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[ valueX[0], valueY[0] ]), /* tuple */[ 20, 30 ]); })); })); })); })); return Wonder_jest.describe("bind mousedrag event", (function (param) { Wonder_jest.test("trigger mousedragstart event when mousedown", (function (param) { var state = MouseEventTool$Wonderjs.prepare(sandbox, undefined, undefined, undefined, undefined, /* () */0); var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(state); var value = /* record */[/* contents */0]; var state$2 = ManageEventAPI$Wonderjs.onMouseEvent(/* MouseDragStart */6, 0, (function ($$event, state) { value[0] = value[0] + 1 | 0; return state; }), state$1); var state$3 = MainStateTool$Wonderjs.setState(state$2); EventTool$Wonderjs.triggerDomEvent("mousedown", EventTool$Wonderjs.getPointEventBindedDom(state$3), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.restore(state$3); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), 1); })); Wonder_jest.test("trigger mousedragover event when mousemove after mousedown", (function (param) { var state = MouseEventTool$Wonderjs.prepare(sandbox, undefined, undefined, undefined, undefined, /* () */0); var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(state); var value = /* record */[/* contents */0]; var state$2 = ManageEventAPI$Wonderjs.onMouseEvent(/* MouseDragOver */7, 0, (function ($$event, state) { value[0] = value[0] + 1 | 0; return state; }), state$1); var state$3 = MainStateTool$Wonderjs.setState(state$2); EventTool$Wonderjs.triggerDomEvent("mousedown", EventTool$Wonderjs.getPointEventBindedDom(state$3), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.triggerFirstMouseDragOverEvent(MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), state$3); EventTool$Wonderjs.triggerDomEvent("mousemove", EventTool$Wonderjs.getPointEventBindedDom(state$3), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.restore(state$3); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), 2); })); Wonder_jest.test("trigger mousedragdrop event when mouseup", (function (param) { var state = MouseEventTool$Wonderjs.prepare(sandbox, undefined, undefined, undefined, undefined, /* () */0); var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(state); var value = /* record */[/* contents */0]; var state$2 = ManageEventAPI$Wonderjs.onMouseEvent(/* MouseDragDrop */8, 0, (function ($$event, state) { value[0] = value[0] + 1 | 0; return state; }), state$1); var state$3 = MainStateTool$Wonderjs.setState(state$2); EventTool$Wonderjs.triggerDomEvent("mousedown", EventTool$Wonderjs.getPointEventBindedDom(state$3), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.triggerDomEvent("mousemove", EventTool$Wonderjs.getPointEventBindedDom(state$3), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.triggerDomEvent("mouseup", EventTool$Wonderjs.getPointEventBindedDom(state$3), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.triggerDomEvent("mousemove", EventTool$Wonderjs.getPointEventBindedDom(state$3), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.restore(state$3); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), 1); })); Wonder_jest.describe("test unbind by handleFunc", (function (param) { return Wonder_jest.test("test", (function (param) { var state = MouseEventTool$Wonderjs.prepare(sandbox, undefined, undefined, undefined, undefined, /* () */0); var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(state); var value = /* record */[/* contents */0]; var handleFunc = function ($$event, state) { value[0] = value[0] + 1 | 0; return state; }; var state$2 = ManageEventAPI$Wonderjs.onMouseEvent(/* MouseDragOver */7, 0, handleFunc, state$1); var state$3 = ManageEventAPI$Wonderjs.offMouseEventByHandleFunc(/* MouseDragOver */7, handleFunc, state$2); var state$4 = MainStateTool$Wonderjs.setState(state$3); EventTool$Wonderjs.triggerDomEvent("mousedown", EventTool$Wonderjs.getPointEventBindedDom(state$4), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.triggerDomEvent("mousemove", EventTool$Wonderjs.getPointEventBindedDom(state$4), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)); EventTool$Wonderjs.restore(state$4); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), 0); })); })); Wonder_jest.describe("test movement", (function (param) { var _prepare = function (param) { var state = MouseEventTool$Wonderjs.prepare(sandbox, undefined, undefined, undefined, undefined, /* () */0); MouseEventTool$Wonderjs.setNotPointerLocked(); var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(state); var movementX = /* record */[/* contents */0]; var movementY = /* record */[/* contents */0]; var state$2 = ManageEventAPI$Wonderjs.onMouseEvent(/* MouseDragOver */7, 0, (function ($$event, state) { var match = $$event[/* movementDelta */5]; movementX[0] = match[0]; movementY[0] = match