UNPKG

wonder.js

Version:
268 lines (264 loc) 23.8 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_int32 = require("bs-platform/lib/js/caml_int32.js"); var Wonder_jest = require("wonder-bs-jest/lib/js/src/wonder_jest.js"); var TestTool$Wonderjs = require("../../../tool/TestTool.js"); var GameObjectAPI$Wonderjs = require("../../../../src/api/GameObjectAPI.js"); var GameObjectTool$Wonderjs = require("../../../tool/service/gameObject/GameObjectTool.js"); var ManageEventAPI$Wonderjs = require("../../../../src/api/event/ManageEventAPI.js"); var CustomEventTool$Wonderjs = require("../../job/no_worker/tool/CustomEventTool.js"); var CreateStateMainService$Wonderjs = require("../../../../src/service/state/main/state/CreateStateMainService.js"); Wonder_jest.describe("ManageEventMainService", (function (param) { var sandbox = Sinon.getSandboxDefaultVal(/* () */0); var state = /* record */[/* contents */CreateStateMainService$Wonderjs.createState(/* () */0)]; beforeEach((function () { sandbox[0] = Sinon$1.sandbox.create(); state[0] = TestTool$Wonderjs.init(sandbox, undefined, undefined, /* () */0); return /* () */0; })); afterEach((function () { return Curry._1(Sinon.restoreSandbox, sandbox[0]); })); Wonder_jest.describe("test custom gameObject event", (function (param) { Wonder_jest.describe("test bind", (function (param) { Wonder_jest.test("test bind one gameObject", (function (param) { var value = /* record */[/* contents */0]; var match = GameObjectAPI$Wonderjs.createGameObject(state[0]); var gameObject = match[1]; var state$1 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject, 0, (function ($$event, state) { value[0] = 1; return /* tuple */[ state, $$event ]; }), match[0]); ManageEventAPI$Wonderjs.triggerCustomGameObjectEvent(CustomEventTool$Wonderjs.createCustomEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), undefined, /* () */0), gameObject, state$1); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), 1); })); return Wonder_jest.test("test bind three gameObjects", (function (param) { var value = /* record */[/* contents */1]; var match = GameObjectAPI$Wonderjs.createGameObject(state[0]); var match$1 = GameObjectAPI$Wonderjs.createGameObject(match[0]); var gameObject2 = match$1[1]; var match$2 = GameObjectAPI$Wonderjs.createGameObject(match$1[0]); var state$1 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), match[1], 0, (function ($$event, state) { value[0] = (value[0] << 1); return /* tuple */[ state, $$event ]; }), match$2[0]); var state$2 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject2, 0, (function ($$event, state) { value[0] = Caml_int32.imul(value[0], 3); return /* tuple */[ state, $$event ]; }), state$1); var state$3 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject2, 0, (function ($$event, state) { value[0] = (value[0] << 2); return /* tuple */[ state, $$event ]; }), state$2); var match$3 = ManageEventAPI$Wonderjs.triggerCustomGameObjectEvent(CustomEventTool$Wonderjs.createCustomEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), undefined, /* () */0), gameObject2, state$3); ManageEventAPI$Wonderjs.triggerCustomGameObjectEvent(CustomEventTool$Wonderjs.createCustomEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), undefined, /* () */0), match$2[1], match$3[0]); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), 12); })); })); Wonder_jest.describe("test unbind by handleFunc", (function (param) { return Wonder_jest.test("test", (function (param) { var match = GameObjectAPI$Wonderjs.createGameObject(state[0]); var gameObject = match[1]; var value = /* record */[/* contents */0]; var handleFunc = function ($$event, state) { value[0] = value[0] + 1 | 0; return /* tuple */[ state, $$event ]; }; var state$1 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject, 0, handleFunc, match[0]); var state$2 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject, 0, (function ($$event, state) { value[0] = value[0] + 10 | 0; return /* tuple */[ state, $$event ]; }), state$1); var state$3 = ManageEventAPI$Wonderjs.offCustomGameObjectEventByHandleFunc(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject, handleFunc, state$2); ManageEventAPI$Wonderjs.triggerCustomGameObjectEvent(CustomEventTool$Wonderjs.createCustomEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), undefined, /* () */0), gameObject, state$3); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), 10); })); })); Wonder_jest.describe("test unbind by target", (function (param) { return Wonder_jest.test("test", (function (param) { var match = GameObjectAPI$Wonderjs.createGameObject(state[0]); var gameObject1 = match[1]; var value = /* record */[/* contents */0]; var handleFunc = function ($$event, state) { value[0] = value[0] + 1 | 0; return /* tuple */[ state, $$event ]; }; var state$1 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject1, 0, handleFunc, match[0]); var state$2 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject1, 0, (function ($$event, state) { value[0] = value[0] + 10 | 0; return /* tuple */[ state, $$event ]; }), state$1); var state$3 = ManageEventAPI$Wonderjs.offCustomGameObjectEventByTarget(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject1, state$2); ManageEventAPI$Wonderjs.triggerCustomGameObjectEvent(CustomEventTool$Wonderjs.createCustomEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), undefined, /* () */0), gameObject1, state$3); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), 0); })); })); Wonder_jest.describe("test priority", (function (param) { return Wonder_jest.test("the higher priority handleFunc is executed first", (function (param) { var match = GameObjectAPI$Wonderjs.createGameObject(state[0]); var gameObject1 = match[1]; var value = /* record */[/* contents */2]; var state$1 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject1, 1, (function ($$event, state) { value[0] = value[0] - 3 | 0; return /* tuple */[ state, $$event ]; }), match[0]); var state$2 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject1, 0, (function ($$event, state) { value[0] = (value[0] << 1); return /* tuple */[ state, $$event ]; }), state$1); ManageEventAPI$Wonderjs.triggerCustomGameObjectEvent(CustomEventTool$Wonderjs.createCustomEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), undefined, /* () */0), gameObject1, state$2); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), -2); })); })); Wonder_jest.describe("test broadcast custom gameObject event", (function (param) { return Wonder_jest.test("trigger gameObject's and its all children' custom event", (function (param) { var value = /* record */[/* contents */0]; var match = GameObjectAPI$Wonderjs.createGameObject(state[0]); var gameObject1 = match[1]; var match$1 = GameObjectAPI$Wonderjs.createGameObject(match[0]); var gameObject2 = match$1[1]; var match$2 = GameObjectAPI$Wonderjs.createGameObject(match$1[0]); var gameObject3 = match$2[1]; var state$1 = GameObjectTool$Wonderjs.addChild(gameObject2, gameObject3, GameObjectTool$Wonderjs.addChild(gameObject1, gameObject2, match$2[0])); var state$2 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject1, 0, (function ($$event, state) { value[0] = value[0] + 1 | 0; return /* tuple */[ state, $$event ]; }), state$1); var state$3 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject2, 0, (function ($$event, state) { value[0] = value[0] + 2 | 0; return /* tuple */[ state, $$event ]; }), state$2); var state$4 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject3, 0, (function ($$event, state) { value[0] = value[0] + 3 | 0; return /* tuple */[ state, $$event ]; }), state$3); ManageEventAPI$Wonderjs.broadcastCustomGameObjectEvent(CustomEventTool$Wonderjs.createCustomEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), undefined, /* () */0), gameObject1, state$4); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), 6); })); })); return Wonder_jest.describe("test emit custom gameObject event", (function (param) { return Wonder_jest.test("trigger gameObject's and its all parents' custom event", (function (param) { var value = /* record */[/* contents */2]; var match = GameObjectAPI$Wonderjs.createGameObject(state[0]); var gameObject1 = match[1]; var match$1 = GameObjectAPI$Wonderjs.createGameObject(match[0]); var gameObject2 = match$1[1]; var match$2 = GameObjectAPI$Wonderjs.createGameObject(match$1[0]); var gameObject3 = match$2[1]; var state$1 = GameObjectTool$Wonderjs.addChild(gameObject2, gameObject3, GameObjectTool$Wonderjs.addChild(gameObject1, gameObject2, match$2[0])); var state$2 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject1, 0, (function ($$event, state) { value[0] = value[0] + 1 | 0; return /* tuple */[ state, $$event ]; }), state$1); var state$3 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject2, 0, (function ($$event, state) { value[0] = value[0] + 2 | 0; return /* tuple */[ state, $$event ]; }), state$2); var state$4 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject3, 0, (function ($$event, state) { value[0] = Caml_int32.imul(value[0], 3); return /* tuple */[ state, $$event ]; }), state$3); ManageEventAPI$Wonderjs.emitCustomGameObjectEvent(CustomEventTool$Wonderjs.createCustomEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), undefined, /* () */0), gameObject3, state$4); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), 9); })); })); })); return Wonder_jest.describe("test stopPropagation", (function (param) { Wonder_jest.describe("test custom gameObject event", (function (param) { return Wonder_jest.test("if stopPropagation, gameObject's less priority handleFunc shouldn't be executed", (function (param) { var match = GameObjectAPI$Wonderjs.createGameObject(state[0]); var gameObject1 = match[1]; var value = /* record */[/* contents */2]; var state$1 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject1, 1, (function ($$event, state) { value[0] = value[0] - 3 | 0; return /* tuple */[ state, ManageEventAPI$Wonderjs.stopPropagationCustomEvent($$event) ]; }), match[0]); var state$2 = ManageEventAPI$Wonderjs.onCustomGameObjectEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), gameObject1, 0, (function ($$event, state) { value[0] = (value[0] << 1); return /* tuple */[ state, $$event ]; }), state$1); ManageEventAPI$Wonderjs.triggerCustomGameObjectEvent(CustomEventTool$Wonderjs.createCustomEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), undefined, /* () */0), gameObject1, state$2); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), -1); })); })); return Wonder_jest.describe("test custom global event", (function (param) { return Wonder_jest.test("if stopPropagation, less priority handleFunc shouldn't be executed", (function (param) { var match = GameObjectAPI$Wonderjs.createGameObject(state[0]); var value = /* record */[/* contents */2]; var state$1 = ManageEventAPI$Wonderjs.onCustomGlobalEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), 1, (function ($$event, state) { value[0] = value[0] - 3 | 0; return /* tuple */[ state, ManageEventAPI$Wonderjs.stopPropagationCustomEvent($$event) ]; }), match[0]); var state$2 = ManageEventAPI$Wonderjs.onCustomGlobalEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), 0, (function ($$event, state) { value[0] = (value[0] << 1); return /* tuple */[ state, $$event ]; }), state$1); ManageEventAPI$Wonderjs.triggerCustomGlobalEvent(CustomEventTool$Wonderjs.createCustomEvent(CustomEventTool$Wonderjs.getPointDownEventName(/* () */0), undefined, /* () */0), state$2); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](value[0]), -1); })); })); })); })); /* Not a pure module */