import { InstancingPipelineStage, Matrix4, ModelExperimentalNode, } from "../../../Source/Cesium.js"; describe("Scene/ModelExperimental/ModelExperimentalNode", function () { var mockNode = {}; var modelMatrix = Matrix4.IDENTITY; it("throws for undefined node", function () { expect(function () { return new ModelExperimentalNode({ node: undefined, modelMatrix: modelMatrix, }); }).toThrowDeveloperError(); }); it("throws for undefined modelMatrix", function () { expect(function () { return new ModelExperimentalNode({ node: mockNode, modelMatrix: undefined, }); }).toThrowDeveloperError(); }); it("constructs", function () { var node = new ModelExperimentalNode({ node: mockNode, modelMatrix: modelMatrix, }); expect(node.node).toBe(mockNode); expect(node.modelMatrix).toBe(modelMatrix); expect(node.pipelineStages).toEqual([]); expect(node.runtimePrimitives).toEqual([]); }); it("adds instancing pipeline stage if node is instanced", function () { var instancedMockNode = { instances: { attributes: [], }, }; var node = new ModelExperimentalNode({ node: instancedMockNode, modelMatrix: modelMatrix, }); expect(node.node).toBe(instancedMockNode); expect(node.modelMatrix).toBe(modelMatrix); expect(node.pipelineStages.length).toBe(1); expect(node.pipelineStages[0]).toEqual(InstancingPipelineStage); expect(node.runtimePrimitives).toEqual([]); }); });