UNPKG

phaser

Version:

A fast, free and fun HTML5 Game Framework for Desktop and Mobile web browsers from the team at Phaser Studio Inc.

115 lines (96 loc) 3.65 kB
var TilemapGPULayerWebGLRenderer = require('../../src/tilemaps/TilemapGPULayerWebGLRenderer'); describe('TilemapGPULayerWebGLRenderer', function () { it('should be a function', function () { expect(typeof TilemapGPULayerWebGLRenderer).toBe('function'); }); it('should call submitterNode.run with drawingContext, src, and parentMatrix', function () { var runCalls = []; var submitterNode = { run: function (drawingContext, src, parentMatrix) { runCalls.push({ drawingContext: drawingContext, src: src, parentMatrix: parentMatrix }); } }; var drawingContext = { id: 'drawingContext' }; var parentMatrix = { id: 'parentMatrix' }; var src = { customRenderNodes: { Submitter: submitterNode }, defaultRenderNodes: {} }; var renderer = {}; TilemapGPULayerWebGLRenderer(renderer, src, drawingContext, parentMatrix); expect(runCalls.length).toBe(1); expect(runCalls[0].drawingContext).toBe(drawingContext); expect(runCalls[0].src).toBe(src); expect(runCalls[0].parentMatrix).toBe(parentMatrix); }); it('should use defaultRenderNodes.Submitter when customRenderNodes.Submitter is not set', function () { var runCalls = []; var defaultSubmitter = { run: function (drawingContext, src, parentMatrix) { runCalls.push({ drawingContext: drawingContext, src: src, parentMatrix: parentMatrix }); } }; var drawingContext = { id: 'drawingContext' }; var parentMatrix = { id: 'parentMatrix' }; var src = { customRenderNodes: {}, defaultRenderNodes: { Submitter: defaultSubmitter } }; var renderer = {}; TilemapGPULayerWebGLRenderer(renderer, src, drawingContext, parentMatrix); expect(runCalls.length).toBe(1); expect(runCalls[0].drawingContext).toBe(drawingContext); expect(runCalls[0].src).toBe(src); expect(runCalls[0].parentMatrix).toBe(parentMatrix); }); it('should prefer customRenderNodes.Submitter over defaultRenderNodes.Submitter', function () { var customRunCalled = false; var defaultRunCalled = false; var customSubmitter = { run: function () { customRunCalled = true; } }; var defaultSubmitter = { run: function () { defaultRunCalled = true; } }; var src = { customRenderNodes: { Submitter: customSubmitter }, defaultRenderNodes: { Submitter: defaultSubmitter } }; var renderer = {}; var drawingContext = {}; TilemapGPULayerWebGLRenderer(renderer, src, drawingContext, undefined); expect(customRunCalled).toBe(true); expect(defaultRunCalled).toBe(false); }); it('should pass undefined parentMatrix when not provided', function () { var capturedParentMatrix = 'not-called'; var submitterNode = { run: function (drawingContext, src, parentMatrix) { capturedParentMatrix = parentMatrix; } }; var src = { customRenderNodes: { Submitter: submitterNode }, defaultRenderNodes: {} }; var renderer = {}; var drawingContext = {}; TilemapGPULayerWebGLRenderer(renderer, src, drawingContext); expect(capturedParentMatrix).toBeUndefined(); }); });