wonder.js
Version:
353 lines (349 loc) • 32.5 kB
JavaScript
;
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 Wonder_jest = require("wonder-bs-jest/lib/js/src/wonder_jest.js");
var TestTool$Wonderjs = require("../../../../../tool/TestTool.js");
var EventTool$Wonderjs = require("../../../../job/no_worker/tool/EventTool.js");
var DisposeJob$Wonderjs = require("../../../../../../src/job/no_worker/loop/DisposeJob.js");
var GameObjectAPI$Wonderjs = require("../../../../../../src/api/GameObjectAPI.js");
var MainStateTool$Wonderjs = require("../../../../../tool/service/state/MainStateTool.js");
var GameObjectTool$Wonderjs = require("../../../../../tool/service/gameObject/GameObjectTool.js");
var MouseEventTool$Wonderjs = require("../../../../job/no_worker/tool/MouseEventTool.js");
var NoWorkerJobTool$Wonderjs = require("../../../../../tool/service/job/no_worker/NoWorkerJobTool.js");
var EventCameraControllerTool$Wonderjs = require("../../../../../tool/service/camera_controller/EventCameraControllerTool.js");
var ArcballCameraControllerAPI$Wonderjs = require("../../../../../../src/api/camera_controller/ArcballCameraControllerAPI.js");
var ArcballCameraControllerTool$Wonderjs = require("../../../../../tool/service/camera_controller/ArcballCameraControllerTool.js");
var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js");
Wonder_jest.describe("ArcballCameraController", (function (param) {
var sandbox = Sinon.getSandboxDefaultVal(/* () */0);
var state = /* record */[/* contents */MainStateTool$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("createArcballCameraController", (function (param) {
Wonder_jest.test("create a new camera which is just index(int)", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](match[1]), 0);
}));
return Wonder_jest.describe("change state", (function (param) {
return Wonder_jest.test("state->index + 1", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var record = match[0][/* arcballCameraControllerRecord */25];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](record[/* index */0]), 1);
}));
}));
}));
Wonder_jest.describe("unsafeGetArcballCameraControllerGameObject", (function (param) {
return Wonder_jest.test("get cameraController's gameObject", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var cameraController = match[1];
var match$1 = GameObjectAPI$Wonderjs.createGameObject(match[0]);
var gameObject = match$1[1];
var state$1 = GameObjectAPI$Wonderjs.addGameObjectArcballCameraControllerComponent(gameObject, cameraController, match$1[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerGameObject(cameraController, state$1)), gameObject);
}));
}));
Wonder_jest.describe("bind/unbind arcballCameraController event", (function (param) {
var _prepareMouseEvent = function (sandbox) {
var state = EventCameraControllerTool$Wonderjs.prepareMouseEvent(sandbox);
var match = ArcballCameraControllerTool$Wonderjs.createGameObject(state);
var cameraController = match[3][0];
var state$1 = NoWorkerJobTool$Wonderjs.execInitJobs(match[0]);
var state$2 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerTheta(cameraController, 0.5, ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerPhi(cameraController, 1, ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerRotateSpeed(cameraController, 2.5, state$1)));
return /* tuple */[
state$2,
cameraController,
1,
0.5
];
};
var _triggerEvent = function (state) {
var state$1 = MainStateTool$Wonderjs.setState(state);
EventTool$Wonderjs.triggerDomEvent("mousedown", EventTool$Wonderjs.getPointEventBindedDom(state$1), MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0));
EventTool$Wonderjs.triggerFirstMouseDragOverEvent(MouseEventTool$Wonderjs.buildMouseEvent(undefined, undefined, undefined, 1, 2, undefined, undefined, undefined, undefined, /* () */0), state$1);
return EventTool$Wonderjs.restore(state$1);
};
Wonder_jest.describe("if unbind event, arcballCameraController event shouldn't work", (function (param) {
return Wonder_jest.test("test point drag event", (function (param) {
var match = _prepareMouseEvent(sandbox);
var cameraController = match[1];
var state = ArcballCameraControllerAPI$Wonderjs.unbindArcballCameraControllerEvent(cameraController, match[0]);
var state$1 = _triggerEvent(state);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerPhi(cameraController, state$1),
ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerTheta(cameraController, state$1)
]), /* tuple */[
match[2],
match[3]
]);
}));
}));
return Wonder_jest.describe("if bind event after unbind event, arcballCameraController event should work", (function (param) {
return Wonder_jest.test("test point drag event", (function (param) {
var match = _prepareMouseEvent(sandbox);
var cameraController = match[1];
var match$1 = MouseEventTool$Wonderjs.prepareForPointerLock(sandbox, match[0]);
var state = ArcballCameraControllerAPI$Wonderjs.unbindArcballCameraControllerEvent(cameraController, match$1[0]);
var state$1 = ArcballCameraControllerAPI$Wonderjs.bindArcballCameraControllerEvent(cameraController, state);
var state$2 = _triggerEvent(state$1);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* <> */6], Wonder_jest.Expect[/* expect */0](/* tuple */[
ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerPhi(cameraController, state$2),
ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerTheta(cameraController, state$2)
]), /* tuple */[
match[2],
match[3]
]);
}));
}));
}));
Wonder_jest.describe("dispose component", (function (param) {
var _prepareTwo = function (state) {
var match = ArcballCameraControllerTool$Wonderjs.createGameObject(state[0]);
var match$1 = ArcballCameraControllerTool$Wonderjs.createGameObject(match[0]);
return /* tuple */[
match$1[0],
match[1],
match[3][0],
match$1[1],
match$1[3][0]
];
};
return Wonder_jest.describe("dispose data", (function (param) {
Wonder_jest.test("remove from distanceMap, minDistanceMap, phiMap, thetaMap, thetaMarginMap, targetMap, moveSpeedXMap, moveSpeedYMap, rotateSpeedMap, wheelSpeedMap, gameObjectMap, directionArrayMap", (function (param) {
var match = _prepareTwo(state);
var cameraController1 = match[2];
var state$1 = GameObjectTool$Wonderjs.disposeGameObjectArcballCameraControllerComponent(match[1], cameraController1, match[0]);
var match$1 = state$1[/* arcballCameraControllerRecord */25];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* distanceMap */7]),
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* minDistanceMap */8]),
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* phiMap */9]),
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* thetaMap */10]),
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* thetaMarginMap */11]),
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* targetMap */12]),
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* moveSpeedXMap */13]),
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* moveSpeedYMap */14]),
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* rotateSpeedMap */15]),
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* wheelSpeedMap */16]),
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* gameObjectMap */18]),
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* directionArrayMap */17])
]), /* tuple */[
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
]);
}));
Wonder_jest.describe("remove from eventHandleFunc map", (function (param) {
return Wonder_jest.test("remove from map", (function (param) {
var match = ArcballCameraControllerTool$Wonderjs.createGameObject(state[0]);
var cameraController1 = match[3][0];
var value = /* record */[/* contents */0];
var pointDragStartHandleFunc = function ($$event, state) {
value[0] = value[0] + 1 | 0;
return /* tuple */[
state,
$$event
];
};
var pointDragDropHandleFunc = function ($$event, state) {
value[0] = value[0] + 1 | 0;
return /* tuple */[
state,
$$event
];
};
var pointDragOverHandleFunc = function ($$event, state) {
value[0] = value[0] + 1 | 0;
return /* tuple */[
state,
$$event
];
};
var pointScaleHandleFunc = function ($$event, state) {
value[0] = value[0] + 2 | 0;
return /* tuple */[
state,
$$event
];
};
var keydownHandleFunc = function ($$event, state) {
value[0] = value[0] + 3 | 0;
return state;
};
var keyupHandleFunc = function ($$event, state) {
value[0] = value[0] + 3 | 0;
return state;
};
var state$1 = ArcballCameraControllerTool$Wonderjs.addKeyupEventHandleFunc(cameraController1, keyupHandleFunc, ArcballCameraControllerTool$Wonderjs.addKeydownEventHandleFunc(cameraController1, keydownHandleFunc, ArcballCameraControllerTool$Wonderjs.addPointScaleEventHandleFunc(cameraController1, pointScaleHandleFunc, ArcballCameraControllerTool$Wonderjs.addPointDragOverEventHandleFunc(cameraController1, pointDragOverHandleFunc, ArcballCameraControllerTool$Wonderjs.addPointDragDropEventHandleFunc(cameraController1, pointDragDropHandleFunc, ArcballCameraControllerTool$Wonderjs.addPointDragStartEventHandleFunc(cameraController1, pointDragStartHandleFunc, match[0]))))));
var state$2 = GameObjectTool$Wonderjs.disposeGameObjectArcballCameraControllerComponent(match[1], cameraController1, state$1);
var match$1 = state$2[/* arcballCameraControllerRecord */25];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* pointDragStartEventHandleFuncListMap */1]),
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* pointDragDropEventHandleFuncListMap */2]),
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* pointDragOverEventHandleFuncListMap */3]),
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* pointScaleEventHandleFuncListMap */4]),
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* keydownEventHandleFuncListMap */5]),
MutableSparseMapService$WonderCommonlib.has(cameraController1, match$1[/* keyupEventHandleFuncListMap */6])
]), /* tuple */[
false,
false,
false,
false,
false,
false
]);
}));
}));
return Wonder_jest.describe("fix bug", (function (param) {
return Wonder_jest.test("dispose component;\n loopBody;\n loopBody;\n\ncomponent should be removed from gameObject\n ", (function (param) {
var match = ArcballCameraControllerTool$Wonderjs.createGameObject(state[0]);
var gameObject1 = match[1];
var state$1 = GameObjectAPI$Wonderjs.disposeGameObjectArcballCameraControllerComponent(gameObject1, match[3][0], match[0]);
var state$2 = DisposeJob$Wonderjs.execJob(undefined, state$1);
var state$3 = DisposeJob$Wonderjs.execJob(undefined, state$2);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.hasGameObjectArcballCameraControllerComponent(gameObject1, state$3)), false);
}));
}));
}));
}));
Wonder_jest.describe("unsafeGetDistance", (function (param) {
return Wonder_jest.test("test", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var cameraController = match[1];
var state$1 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerDistance(cameraController, 65, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerDistance(cameraController, state$1)), 65);
}));
}));
Wonder_jest.describe("unsafeGetDistance", (function (param) {
Wonder_jest.test("test", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var cameraController = match[1];
var state$1 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerDistance(cameraController, 65, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerDistance(cameraController, state$1)), 65);
}));
return Wonder_jest.test("constrain distance", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var cameraController = match[1];
var state$1 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerMinDistance(cameraController, 2, match[0]);
var state$2 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerDistance(cameraController, 1, state$1);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerDistance(cameraController, state$2)), 2);
}));
}));
Wonder_jest.describe("unsafeGetMinDistance", (function (param) {
return Wonder_jest.test("test", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var cameraController = match[1];
var state$1 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerMinDistance(cameraController, 65, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerMinDistance(cameraController, state$1)), 65);
}));
}));
Wonder_jest.describe("unsafeGetWheelSpeed", (function (param) {
return Wonder_jest.test("test", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var cameraController = match[1];
var state$1 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerWheelSpeed(cameraController, 65, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerWheelSpeed(cameraController, state$1)), 65);
}));
}));
Wonder_jest.describe("unsafeGetRotateSpeed", (function (param) {
return Wonder_jest.test("test", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var cameraController = match[1];
var state$1 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerRotateSpeed(cameraController, 65, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerRotateSpeed(cameraController, state$1)), 65);
}));
}));
Wonder_jest.describe("unsafeGetPhi", (function (param) {
return Wonder_jest.test("test", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var cameraController = match[1];
var state$1 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerPhi(cameraController, 65, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerPhi(cameraController, state$1)), 65);
}));
}));
Wonder_jest.describe("unsafeGetTheta", (function (param) {
Wonder_jest.test("test", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var cameraController = match[1];
var state$1 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerTheta(cameraController, 0.5, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerTheta(cameraController, state$1)), 0.5);
}));
return Wonder_jest.test("constrain theta", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var cameraController = match[1];
var state$1 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerTheta(cameraController, 3.2, ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerThetaMargin(cameraController, 1, match[0]));
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerTheta(cameraController, state$1)), Math.PI - 1);
}));
}));
Wonder_jest.describe("unsafeGetThetaMargin", (function (param) {
Wonder_jest.test("test", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var cameraController = match[1];
var state$1 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerThetaMargin(cameraController, 1, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerThetaMargin(cameraController, state$1)), 1);
}));
return Wonder_jest.test("constrain theta", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var cameraController = match[1];
var state$1 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerThetaMargin(cameraController, 1, ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerTheta(cameraController, 3.2, match[0]));
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerTheta(cameraController, state$1)), Math.PI - 1);
}));
}));
Wonder_jest.describe("unsafeGetTarget", (function (param) {
return Wonder_jest.test("test", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var cameraController = match[1];
var target = /* tuple */[
1,
2,
5
];
var state$1 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerTarget(cameraController, target, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerTarget(cameraController, state$1)), target);
}));
}));
Wonder_jest.describe("unsafeGetDirectionArray", (function (param) {
return Wonder_jest.test("test", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var cameraController = match[1];
var directionArray = /* array */[
/* Left */0,
/* Up */2
];
var state$1 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerDirectionArray(cameraController, directionArray, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerDirectionArray(cameraController, state$1)), directionArray);
}));
}));
Wonder_jest.describe("unsafeGetMoveSpeedX", (function (param) {
return Wonder_jest.test("test", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var cameraController = match[1];
var state$1 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerMoveSpeedX(cameraController, 65, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerMoveSpeedX(cameraController, state$1)), 65);
}));
}));
return Wonder_jest.describe("unsafeGetMoveSpeedY", (function (param) {
return Wonder_jest.test("test", (function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state[0]);
var cameraController = match[1];
var state$1 = ArcballCameraControllerAPI$Wonderjs.setArcballCameraControllerMoveSpeedY(cameraController, 65, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerMoveSpeedY(cameraController, state$1)), 65);
}));
}));
}));
/* Not a pure module */