Test that GLRenderer renders correctly for single hash.

This commit is contained in:
Oscar Lorentzon 2016-02-22 11:26:59 +01:00
parent 70fe693ff3
commit 2f88ce8f5b

View File

@ -47,7 +47,6 @@ describe("GLRenderer.ctor", () => {
describe("GLRenderer.renderer", () => {
it("should be created on first render", () => {
let rendererMock: RendererMock = new RendererMock();
spyOn(THREE, "WebGLRenderer").and.returnValue(rendererMock);
let element: HTMLDivElement = document.createElement("div");
@ -70,4 +69,61 @@ describe("GLRenderer.renderer", () => {
expect(THREE.WebGLRenderer).toHaveBeenCalled();
});
it("should render", () => {
let rendererMock: RendererMock = new RendererMock();
spyOn(rendererMock, "render");
spyOn(THREE, "WebGLRenderer").and.returnValue(rendererMock);
let element: HTMLDivElement = document.createElement("div");
let glRenderer: GLRenderer = new GLRenderer(element, rx.Observable.empty<IFrame>());
let renderFunction: IGLRenderFunction = (pc: THREE.PerspectiveCamera, r: THREE.WebGLRenderer): void => {
r.render(new THREE.Scene(), pc);
};
let render: IGLRender = {
frameId: 0,
needsRender: false,
render: renderFunction,
stage: GLRenderStage.Background,
}
let renderHash: IGLRenderHash = {
name: "mock",
render: render,
}
glRenderer.render$.onNext(renderHash);
expect((<jasmine.Spy>rendererMock.render).calls.count()).toBe(1);
});
it("should only render once for the same frame id", () => {
let rendererMock: RendererMock = new RendererMock();
spyOn(rendererMock, "render");
spyOn(THREE, "WebGLRenderer").and.returnValue(rendererMock);
let element: HTMLDivElement = document.createElement("div");
let glRenderer: GLRenderer = new GLRenderer(element, rx.Observable.empty<IFrame>());
let renderFunction: IGLRenderFunction = (pc: THREE.PerspectiveCamera, r: THREE.WebGLRenderer): void => {
r.render(new THREE.Scene(), pc);
};
let render: IGLRender = {
frameId: 0,
needsRender: false,
render: renderFunction,
stage: GLRenderStage.Background,
}
let renderHash: IGLRenderHash = {
name: "mock",
render: render,
}
glRenderer.render$.onNext(renderHash);
glRenderer.render$.onNext(renderHash);
expect((<jasmine.Spy>rendererMock.render).calls.count()).toBe(1);
});
});