wonder.js
Version:
184 lines (180 loc) • 15.8 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 CameraTool$Wonderjs = require("../../../../tool/service/camera/CameraTool.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 BasicCameraViewAPI$Wonderjs = require("../../../../../src/api/camera/BasicCameraViewAPI.js");
var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js");
Wonder_jest.describe("BasicCameraView", (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("createBasicCameraView", (function (param) {
Wonder_jest.test("create a new camera which is just index(int)", (function (param) {
var match = BasicCameraViewAPI$Wonderjs.createBasicCameraView(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 = BasicCameraViewAPI$Wonderjs.createBasicCameraView(state[0]);
var record = match[0][/* basicCameraViewRecord */13];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](record[/* index */0]), 1);
}));
}));
}));
Wonder_jest.describe("unsafeGetBasicCameraViewGameObject", (function (param) {
return Wonder_jest.test("get cameraView's gameObject", (function (param) {
var match = BasicCameraViewAPI$Wonderjs.createBasicCameraView(state[0]);
var cameraView = match[1];
var match$1 = GameObjectAPI$Wonderjs.createGameObject(match[0]);
var gameObject = match$1[1];
var state$1 = GameObjectAPI$Wonderjs.addGameObjectBasicCameraViewComponent(gameObject, cameraView, match$1[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](BasicCameraViewAPI$Wonderjs.unsafeGetBasicCameraViewGameObject(cameraView, state$1)), gameObject);
}));
}));
Wonder_jest.describe("isActiveBasicCameraView", (function (param) {
return Wonder_jest.test("test", (function (param) {
var match = BasicCameraViewAPI$Wonderjs.createBasicCameraView(state[0]);
var cameraView = match[1];
var state$1 = BasicCameraViewAPI$Wonderjs.setActiveBasicCameraView(cameraView, false, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](BasicCameraViewAPI$Wonderjs.isActiveBasicCameraView(cameraView, state$1)), false);
}));
}));
Wonder_jest.describe("activeBasicCameraView", (function (param) {
return Wonder_jest.describe("ensure only has one active basicCameraView", (function (param) {
return Wonder_jest.test("active this one, unactive other ones", (function (param) {
var match = BasicCameraViewAPI$Wonderjs.createBasicCameraView(state[0]);
var cameraView1 = match[1];
var match$1 = BasicCameraViewAPI$Wonderjs.createBasicCameraView(match[0]);
var cameraView2 = match$1[1];
var match$2 = BasicCameraViewAPI$Wonderjs.createBasicCameraView(match$1[0]);
var cameraView3 = match$2[1];
var state$1 = BasicCameraViewAPI$Wonderjs.activeBasicCameraView(cameraView3, BasicCameraViewAPI$Wonderjs.setActiveBasicCameraView(cameraView3, false, BasicCameraViewAPI$Wonderjs.setActiveBasicCameraView(cameraView2, true, BasicCameraViewAPI$Wonderjs.setActiveBasicCameraView(cameraView1, true, match$2[0]))));
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
BasicCameraViewAPI$Wonderjs.isActiveBasicCameraView(cameraView1, state$1),
BasicCameraViewAPI$Wonderjs.isActiveBasicCameraView(cameraView2, state$1),
BasicCameraViewAPI$Wonderjs.isActiveBasicCameraView(cameraView3, state$1)
]), /* tuple */[
false,
false,
true
]);
}));
}));
}));
Wonder_jest.describe("unactiveBasicCameraView", (function (param) {
return Wonder_jest.test("unactive this one(not affect other ones)", (function (param) {
var match = BasicCameraViewAPI$Wonderjs.createBasicCameraView(state[0]);
var cameraView1 = match[1];
var match$1 = BasicCameraViewAPI$Wonderjs.createBasicCameraView(match[0]);
var cameraView2 = match$1[1];
var state$1 = BasicCameraViewAPI$Wonderjs.unactiveBasicCameraView(cameraView2, BasicCameraViewAPI$Wonderjs.setActiveBasicCameraView(cameraView2, true, BasicCameraViewAPI$Wonderjs.setActiveBasicCameraView(cameraView1, true, match$1[0])));
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
BasicCameraViewAPI$Wonderjs.isActiveBasicCameraView(cameraView1, state$1),
BasicCameraViewAPI$Wonderjs.isActiveBasicCameraView(cameraView2, state$1)
]), /* tuple */[
true,
false
]);
}));
}));
Wonder_jest.describe("getActiveBasicCameraView", (function (param) {
Wonder_jest.test("test has none", (function (param) {
var match = BasicCameraViewAPI$Wonderjs.createBasicCameraView(state[0]);
var match$1 = BasicCameraViewAPI$Wonderjs.createBasicCameraView(match[0]);
var state$1 = BasicCameraViewAPI$Wonderjs.setActiveBasicCameraView(match$1[1], false, BasicCameraViewAPI$Wonderjs.setActiveBasicCameraView(match[1], false, match$1[0]));
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](BasicCameraViewAPI$Wonderjs.getActiveBasicCameraView(state$1)), undefined);
}));
Wonder_jest.test("test has one", (function (param) {
var match = BasicCameraViewAPI$Wonderjs.createBasicCameraView(state[0]);
var cameraView1 = match[1];
var match$1 = BasicCameraViewAPI$Wonderjs.createBasicCameraView(match[0]);
var state$1 = BasicCameraViewAPI$Wonderjs.setActiveBasicCameraView(match$1[1], false, BasicCameraViewAPI$Wonderjs.setActiveBasicCameraView(cameraView1, true, match$1[0]));
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](BasicCameraViewAPI$Wonderjs.getActiveBasicCameraView(state$1)), cameraView1);
}));
return Wonder_jest.test("if has >= 2, contract error", (function (param) {
var match = BasicCameraViewAPI$Wonderjs.createBasicCameraView(state[0]);
var match$1 = BasicCameraViewAPI$Wonderjs.createBasicCameraView(match[0]);
var state$1 = BasicCameraViewAPI$Wonderjs.setActiveBasicCameraView(match$1[1], true, BasicCameraViewAPI$Wonderjs.setActiveBasicCameraView(match[1], true, match$1[0]));
return Wonder_jest.Expect[/* toThrowMessage */21]("expect only has one active cameraView at most", Wonder_jest.Expect[/* expect */0]((function (param) {
return BasicCameraViewAPI$Wonderjs.getActiveBasicCameraView(state$1);
})));
}));
}));
return Wonder_jest.describe("dispose component", (function (param) {
var _prepareTwo = function (state) {
var match = CameraTool$Wonderjs.createCameraGameObject(state);
var match$1 = CameraTool$Wonderjs.createCameraGameObject(match[0]);
return /* tuple */[
match$1[0],
match[1],
match[3][0],
match$1[1],
match$1[3][0]
];
};
Wonder_jest.describe("dispose data", (function (param) {
return Wonder_jest.test("remove from isActiveMap, gameObjectMap", (function (param) {
var match = CameraTool$Wonderjs.createCameraGameObject(state[0]);
var basicCameraView1 = match[3][0];
var state$1 = GameObjectTool$Wonderjs.disposeGameObjectBasicCameraViewComponent(match[1], basicCameraView1, match[0]);
var match$1 = state$1[/* basicCameraViewRecord */13];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
MutableSparseMapService$WonderCommonlib.has(basicCameraView1, match$1[/* isActiveMap */1]),
MutableSparseMapService$WonderCommonlib.has(basicCameraView1, match$1[/* gameObjectMap */2])
]), /* tuple */[
false,
false
]);
}));
}));
Wonder_jest.describe("test add new one after dispose old one", (function (param) {
Wonder_jest.test("use disposed index as new index firstly", (function (param) {
var match = _prepareTwo(state[0]);
var basicCameraView1 = match[2];
var state$1 = GameObjectTool$Wonderjs.disposeGameObjectBasicCameraViewComponent(match[1], basicCameraView1, match[0]);
var match$1 = CameraTool$Wonderjs.createCameraGameObject(state$1);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](match$1[3][0]), basicCameraView1);
}));
return Wonder_jest.test("if has no disposed index, get index from meshRendererRecord.index", (function (param) {
var match = _prepareTwo(state[0]);
var basicCameraView1 = match[2];
var state$1 = GameObjectTool$Wonderjs.disposeGameObjectBasicCameraViewComponent(match[1], basicCameraView1, match[0]);
var match$1 = CameraTool$Wonderjs.createCameraGameObject(state$1);
var match$2 = CameraTool$Wonderjs.createCameraGameObject(match$1[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
match$1[3][0],
match$2[3][0]
]), /* tuple */[
basicCameraView1,
match[4] + 1 | 0
]);
}));
}));
return Wonder_jest.describe("contract check", (function (param) {
return Wonder_jest.test("expect dispose the alive component, but actual not", (function (param) {
var match = _prepareTwo(state[0]);
var basicCameraView1 = match[2];
var gameObject1 = match[1];
var state$1 = GameObjectTool$Wonderjs.disposeGameObjectBasicCameraViewComponent(gameObject1, basicCameraView1, match[0]);
return Wonder_jest.Expect[/* toThrowMessage */21]("expect dispose the alive component, but actual not", Wonder_jest.Expect[/* expect */0]((function (param) {
GameObjectTool$Wonderjs.disposeGameObjectBasicCameraViewComponent(gameObject1, basicCameraView1, state$1);
return /* () */0;
})));
}));
}));
}));
}));
/* Not a pure module */