UNPKG

wonder.js

Version:
133 lines (129 loc) 15.2 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_option = require("bs-platform/lib/js/caml_option.js"); var Wonder_jest = require("wonder-bs-jest/lib/js/src/wonder_jest.js"); var GLSLTool$Wonderjs = require("../../../../tool/render/core/GLSLTool.js"); var FakeGlTool$Wonderjs = require("../../../../tool/gl/FakeGlTool.js"); var MainStateTool$Wonderjs = require("../../../../tool/service/state/MainStateTool.js"); var GLSLLocationTool$Wonderjs = require("../../../../tool/service/location/GLSLLocationTool.js"); var InitMaterialTool$Wonderjs = require("../../../../tool/job/no_worker/init/InitMaterialTool.js"); var InitMaterialJobTool$Wonderjs = require("../../../../tool/job/no_worker/init/InitMaterialJobTool.js"); var NoWorkerJobConfigTool$Wonderjs = require("../../../../tool/service/noWorkerJob/NoWorkerJobConfigTool.js"); var InitBasicMaterialJobTool$Wonderjs = require("../../../../tool/job/no_worker/init/InitBasicMaterialJobTool.js"); Wonder_jest.describe("test init basic material job", (function (param) { var sandbox = Sinon.getSandboxDefaultVal(/* () */0); var state = /* record */[/* contents */MainStateTool$Wonderjs.createState(/* () */0)]; var _buildNoWorkerJobConfig = function (param) { return NoWorkerJobConfigTool$Wonderjs.buildNoWorkerJobConfig(undefined, "\n [\n {\n \"name\": \"default\",\n \"jobs\": [\n {\n \"name\": \"preget_glslData\"\n },\n {\n \"name\": \"init_basic_material\"\n }\n ]\n }\n ]\n ", undefined, "\n[\n {\n \"name\": \"preget_glslData\"\n },\n {\n \"name\": \"init_basic_material\"\n }\n]\n ", undefined, /* () */0); }; beforeEach((function () { sandbox[0] = Sinon$1.sandbox.create(); state[0] = InitBasicMaterialJobTool$Wonderjs.initWithJobConfig(sandbox, _buildNoWorkerJobConfig(/* () */0)); return /* () */0; })); afterEach((function () { return Curry._1(Sinon.restoreSandbox, sandbox[0]); })); Wonder_jest.describe("test get attribute location", (function (param) { return Wonder_jest.describe("test get a_position location", (function (param) { Wonder_jest.test("test get location", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state[0]); var getAttribLocation = GLSLLocationTool$Wonderjs.getAttribLocation(undefined, sandbox, "a_position"); var state$1 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(getAttribLocation), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), match[0]); InitBasicMaterialJobTool$Wonderjs.exec(state$1); return Sinon.toCalledOnce(Wonder_jest.Expect[/* expect */0](Sinon.withTwoArgs(Sinon$1.match.any, "a_position", getAttribLocation))); })); return Wonder_jest.describe("test cache", (function (param) { return Wonder_jest.test("if cached, not query gl location", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state[0]); var match$1 = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, match[0]); var getAttribLocation = GLSLLocationTool$Wonderjs.getAttribLocation(undefined, sandbox, "a_position"); var state$1 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(getAttribLocation), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), match$1[0]); InitBasicMaterialJobTool$Wonderjs.exec(state$1); return Sinon.toCalledOnce(Wonder_jest.Expect[/* expect */0](Sinon.withTwoArgs(Sinon$1.match.any, "a_position", getAttribLocation))); })); })); })); })); Wonder_jest.describe("test get uniform location", (function (param) { var _testGetLocation = function (name) { return InitMaterialTool$Wonderjs.testGetLocation(sandbox, name, /* tuple */[ InitBasicMaterialJobTool$Wonderjs.prepareGameObject, InitBasicMaterialJobTool$Wonderjs.exec ], state); }; Wonder_jest.describe("test get u_mMatrix location", (function (param) { Wonder_jest.test("test get location", (function (param) { return _testGetLocation("u_mMatrix"); })); return Wonder_jest.describe("test cache", (function (param) { return Wonder_jest.test("if cached, not query gl location", (function (param) { return InitMaterialTool$Wonderjs.testLocationCache(sandbox, "u_mMatrix", /* tuple */[ InitBasicMaterialJobTool$Wonderjs.prepareGameObject, InitBasicMaterialJobTool$Wonderjs.exec ], state); })); })); })); return Wonder_jest.test("test get u_color location", (function (param) { return _testGetLocation("u_color"); })); })); return Wonder_jest.describe("test glsl", (function (param) { Wonder_jest.test("glsl only set glPosition,glFragColor once", (function (param) { return InitMaterialTool$Wonderjs.testOnlySeGlPositionGlFragColorOnce(sandbox, InitBasicMaterialJobTool$Wonderjs.prepareForJudgeGLSL, state); })); return Wonder_jest.describe("test shader lib's glsl", (function (param) { Wonder_jest.test("test common shader lib's glsl", (function (param) { return InitMaterialTool$Wonderjs.testCommonShaderLibGlsl(sandbox, InitBasicMaterialJobTool$Wonderjs.prepareForJudgeGLSL, state); })); Wonder_jest.test("test vertex shader lib's glsl", (function (param) { return InitMaterialTool$Wonderjs.testVertexShaderLibGlsl(sandbox, InitBasicMaterialJobTool$Wonderjs.prepareForJudgeGLSL, state); })); Wonder_jest.describe("test modelMatrix instance shader libs", (function (param) { return InitMaterialJobTool$Wonderjs.testModelMatrixInstanceShaderLibs(sandbox, /* tuple */[ InitBasicMaterialJobTool$Wonderjs.prepareForJudgeGLSL, InitBasicMaterialJobTool$Wonderjs.prepareForJudgeGLSLNotExec, InitBasicMaterialJobTool$Wonderjs.exec ], state); })); Wonder_jest.describe("test basic shader lib's glsl", (function (param) { return Wonder_jest.test("test vs glsl", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareForJudgeGLSL(sandbox, state[0]); return Wonder_jest.Expect[/* toContainString */11]("gl_Position = u_pMatrix * u_vMatrix * mMatrix * vec4(a_position, 1.0);", Wonder_jest.Expect[/* expect */0](GLSLTool$Wonderjs.getVsSource(match[1]))); })); })); Wonder_jest.describe("test map shader lib's glsl", (function (param) { return Wonder_jest.describe("add basic_no_map shader lib", (function (param) { Wonder_jest.test("test vs glsl", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareForJudgeGLSL(sandbox, state[0]); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GLSLTool$Wonderjs.containMultiline(GLSLTool$Wonderjs.getVsSource(match[1]), /* :: */[ "varying vec2 v_mapCoord0;", /* [] */0 ])), false); })); return Wonder_jest.test("test fs glsl", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareForJudgeGLSL(sandbox, state[0]); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GLSLTool$Wonderjs.containMultiline(GLSLTool$Wonderjs.getFsSource(match[1]), /* :: */[ "uniform vec3 u_color;", /* :: */[ "uniform float u_alpha;", /* :: */[ "vec4 totalColor = vec4(u_color, u_alpha);", /* [] */0 ] ] ])), true); })); })); })); return Wonder_jest.test("test basic_end shader lib's glsl", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareForJudgeGLSL(sandbox, state[0]); return Wonder_jest.Expect[/* toContainString */11]("gl_FragColor = vec4(totalColor.rgb, totalColor.a);", Wonder_jest.Expect[/* expect */0](GLSLTool$Wonderjs.getFsSource(match[1]))); })); })); })); })); /* Not a pure module */