wonder.js
Version:
140 lines (136 loc) • 17.1 kB
JavaScript
'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 TestTool$Wonderjs = require("../../../../tool/TestTool.js");
var ABBufferViewUtils$Wonderjs = require("../../../../../src/asset_bundle/all/utils/ABBufferViewUtils.js");
var GenerateSingleRABTool$Wonderjs = require("../tool/GenerateSingleRABTool.js");
var CreateStateMainService$Wonderjs = require("../../../../../src/service/state/main/state/CreateStateMainService.js");
var GenerateSingleRABSystem$Wonderjs = require("../../../../../src/asset_bundle/single/rab/generate/GenerateSingleRABSystem.js");
var ImmutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ImmutableSparseMapService.js");
Wonder_jest.describe("generate single rab", (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 GenerateSingleRABTool$Wonderjs.prepare(sandbox[0]);
}));
afterEach((function () {
return Curry._1(Sinon.restoreSandbox, sandbox[0]);
}));
Wonder_jest.describe("test images", (function (param) {
Wonder_jest.test("test from basic source texture", (function (param) {
var image1 = GenerateSingleRABTool$Wonderjs.ResourceData[/* buildImageData */1](undefined, undefined, undefined, /* () */0);
var basicSourceTextureImageDataMap = ImmutableSparseMapService$WonderCommonlib.set(0, image1, ImmutableSparseMapService$WonderCommonlib.createEmpty(/* () */0));
var match = GenerateSingleRABTool$Wonderjs.ResourceData[/* createBasicSourceTextureResourceData */2](state[0], "texture1", undefined, undefined, undefined, undefined, undefined, undefined, undefined, 0, /* () */0);
var resourceData = GenerateSingleRABTool$Wonderjs.ResourceData[/* buildResourceData */9](undefined, undefined, /* array */[match[1]], undefined, undefined, undefined, undefined, basicSourceTextureImageDataMap, undefined, /* () */0);
var rab = GenerateSingleRABSystem$Wonderjs.generateSingleRAB(resourceData, match[0]);
var content = GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* getResourceAssetBundleContent */0](rab);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](content[/* images */2]), /* array */[GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* buildImageData */1](image1[/* name */1], image1[/* mimeType */2], 0, /* () */0)]);
}));
return Wonder_jest.test("test from cubemap texture", (function (param) {
var match = GenerateSingleRABTool$Wonderjs.Test[/* createCubemapTextureResourceData */1](state[0], undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0);
var match$1 = match[3];
var match$2 = match$1[1];
var image6 = match$2[5];
var image5 = match$2[4];
var image4 = match$2[3];
var image3 = match$2[2];
var image2 = match$2[1];
var image1 = match$2[0];
var resourceData = GenerateSingleRABTool$Wonderjs.ResourceData[/* buildResourceData */9](undefined, undefined, undefined, /* array */[match[1]], undefined, undefined, undefined, undefined, match$1[0], /* () */0);
var rab = GenerateSingleRABSystem$Wonderjs.generateSingleRAB(resourceData, match[0]);
var content = GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* getResourceAssetBundleContent */0](rab);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](content[/* images */2]), /* array */[
GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* buildImageData */1](image1[/* name */1], image1[/* mimeType */2], 0, /* () */0),
GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* buildImageData */1](image2[/* name */1], image2[/* mimeType */2], 1, /* () */0),
GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* buildImageData */1](image3[/* name */1], image3[/* mimeType */2], 2, /* () */0),
GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* buildImageData */1](image4[/* name */1], image4[/* mimeType */2], 3, /* () */0),
GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* buildImageData */1](image5[/* name */1], image5[/* mimeType */2], 4, /* () */0),
GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* buildImageData */1](image6[/* name */1], image6[/* mimeType */2], 5, /* () */0)
]);
}));
}));
Wonder_jest.describe("test lightMaterials and basicSourceTextures", (function (param) {
Wonder_jest.test("if lightMaterial->maps not contain in resourceData->textures, contract error", (function (param) {
var image1 = GenerateSingleRABTool$Wonderjs.ResourceData[/* buildImageData */1](undefined, undefined, undefined, /* () */0);
var basicSourceTextureImageDataMap = ImmutableSparseMapService$WonderCommonlib.set(0, image1, ImmutableSparseMapService$WonderCommonlib.createEmpty(/* () */0));
var match = GenerateSingleRABTool$Wonderjs.ResourceData[/* createBasicSourceTextureResourceData */2](state[0], "texture1", undefined, undefined, undefined, undefined, undefined, undefined, undefined, 0, /* () */0);
var match$1 = GenerateSingleRABTool$Wonderjs.ResourceData[/* createLightMaterialResourceData */5](match[0], Caml_option.some(match[1][/* textureComponent */0]), undefined, undefined, "lightMaterial1", /* () */0);
var state$1 = match$1[0];
var resourceData = GenerateSingleRABTool$Wonderjs.ResourceData[/* buildResourceData */9](undefined, /* array */[match$1[1]], /* array */[], undefined, undefined, undefined, undefined, basicSourceTextureImageDataMap, undefined, /* () */0);
return Wonder_jest.Expect[/* toThrowMessage */21]("expect lightMaterial->maps contain in resourceData->basicSourceTextures", Wonder_jest.Expect[/* expect */0]((function (param) {
return GenerateSingleRABSystem$Wonderjs.generateSingleRAB(resourceData, state$1);
})));
}));
return Wonder_jest.describe("test basicSourceTexture resource data not contain in lightMaterial resource data", (function (param) {
Wonder_jest.test("test lightMaterial has no diffuseMap", (function (param) {
var image1 = GenerateSingleRABTool$Wonderjs.ResourceData[/* buildImageData */1](undefined, undefined, undefined, /* () */0);
var basicSourceTextureImageDataMap = ImmutableSparseMapService$WonderCommonlib.set(0, image1, ImmutableSparseMapService$WonderCommonlib.createEmpty(/* () */0));
var texture1Name = "texture1";
var match = GenerateSingleRABTool$Wonderjs.ResourceData[/* createBasicSourceTextureResourceData */2](state[0], texture1Name, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 0, /* () */0);
var lightMaterial1Name = "lightMaterial1";
var match$1 = GenerateSingleRABTool$Wonderjs.ResourceData[/* createLightMaterialResourceData */5](match[0], Caml_option.some(undefined), undefined, undefined, lightMaterial1Name, /* () */0);
var resourceData = GenerateSingleRABTool$Wonderjs.ResourceData[/* buildResourceData */9](undefined, /* array */[match$1[1]], /* array */[match[1]], undefined, undefined, undefined, undefined, basicSourceTextureImageDataMap, undefined, /* () */0);
var rab = GenerateSingleRABSystem$Wonderjs.generateSingleRAB(resourceData, match$1[0]);
var content = GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* getResourceAssetBundleContent */0](rab);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
content[/* basicSourceTextures */0],
content[/* lightMaterials */4]
]), /* tuple */[
/* array */[GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* buildBasicSourceTextureData */2](texture1Name, 0, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)],
/* array */[GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* buildLightMaterialData */4](lightMaterial1Name, Caml_option.some(undefined), undefined, undefined, /* () */0)]
]);
}));
return Wonder_jest.test("test lightMaterial has one diffuseMap", (function (param) {
var image1 = GenerateSingleRABTool$Wonderjs.ResourceData[/* buildImageData */1](undefined, undefined, undefined, /* () */0);
var basicSourceTextureImageDataMap = ImmutableSparseMapService$WonderCommonlib.set(0, image1, ImmutableSparseMapService$WonderCommonlib.createEmpty(/* () */0));
var texture1Name = "texture1";
var match = GenerateSingleRABTool$Wonderjs.ResourceData[/* createBasicSourceTextureResourceData */2](state[0], texture1Name, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 0, /* () */0);
var texture2Name = "texture2";
var match$1 = GenerateSingleRABTool$Wonderjs.ResourceData[/* createBasicSourceTextureResourceData */2](match[0], texture2Name, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 0, /* () */0);
var textureResourceData2 = match$1[1];
var lightMaterial1Name = "lightMaterial1";
var match$2 = GenerateSingleRABTool$Wonderjs.ResourceData[/* createLightMaterialResourceData */5](match$1[0], Caml_option.some(textureResourceData2[/* textureComponent */0]), undefined, undefined, lightMaterial1Name, /* () */0);
var resourceData = GenerateSingleRABTool$Wonderjs.ResourceData[/* buildResourceData */9](undefined, /* array */[match$2[1]], /* array */[
match[1],
textureResourceData2
], undefined, undefined, undefined, undefined, basicSourceTextureImageDataMap, undefined, /* () */0);
var rab = GenerateSingleRABSystem$Wonderjs.generateSingleRAB(resourceData, match$2[0]);
var content = GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* getResourceAssetBundleContent */0](rab);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
content[/* basicSourceTextures */0],
content[/* lightMaterials */4]
]), /* tuple */[
/* array */[
GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* buildBasicSourceTextureData */2](texture1Name, 0, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0),
GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* buildBasicSourceTextureData */2](texture2Name, 0, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0)
],
/* array */[GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* buildLightMaterialData */4](lightMaterial1Name, 1, undefined, undefined, /* () */0)]
]);
}));
}));
}));
Wonder_jest.describe("test cubemapTextures", (function (param) {
return Wonder_jest.test("test", (function (param) {
var match = GenerateSingleRABTool$Wonderjs.Test[/* createCubemapTextureResourceData */1](state[0], undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0);
var resourceData = GenerateSingleRABTool$Wonderjs.ResourceData[/* buildResourceData */9](undefined, undefined, undefined, /* array */[match[1]], undefined, undefined, undefined, undefined, match[3][0], /* () */0);
var rab = GenerateSingleRABSystem$Wonderjs.generateSingleRAB(resourceData, match[0]);
var content = GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* getResourceAssetBundleContent */0](rab);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](content[/* cubemapTextures */1]), /* array */[GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* buildCubemapTextureData */3](match[2], undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 0, 1, 2, 3, 4, 5, undefined, /* () */0)]);
}));
}));
return Wonder_jest.describe("test geometrys", (function (param) {
return Wonder_jest.test("test", (function (param) {
var match = GenerateSingleRABTool$Wonderjs.ResourceData[/* createGeometryResourceData */6](state[0], undefined, undefined, undefined, undefined, Caml_option.some(undefined), Caml_option.some(Caml_option.some(new Uint32Array(/* array */[2]))), /* () */0);
var resourceData = GenerateSingleRABTool$Wonderjs.ResourceData[/* buildResourceData */9](undefined, undefined, undefined, undefined, /* array */[match[2]], undefined, undefined, undefined, undefined, /* () */0);
var rab = GenerateSingleRABSystem$Wonderjs.generateSingleRAB(resourceData, match[0]);
var content = GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* getResourceAssetBundleContent */0](rab);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](content[/* geometrys */5]), /* array */[GenerateSingleRABTool$Wonderjs.ResourceAssetBundleContent[/* buildGeometryData */5](match[3], /* Index32 */1, 0, ABBufferViewUtils$Wonderjs.buildNoneBufferViewIndex(/* () */0), ABBufferViewUtils$Wonderjs.buildNoneBufferViewIndex(/* () */0), 1, /* () */0)]);
}));
}));
}));
/* Not a pure module */