phaser
Version:
A fast, free and fun HTML5 Game Framework for Desktop and Mobile web browsers from the team at Phaser Studio Inc.
131 lines (111 loc) • 3.64 kB
JavaScript
/**
* Tests for the test helper itself — verifies that a real headless
* Phaser Game can be booted and used to create actual Game Objects.
*/
var helper = require('./helper');
describe('Test Helper - Headless Phaser', function ()
{
var scene;
beforeEach(async function ()
{
scene = await helper.createGame();
});
afterEach(function ()
{
helper.destroyGame();
});
it('should boot a real Phaser Game', function ()
{
var game = helper.getGame();
expect(game).not.toBeNull();
expect(game.isBooted).toBe(true);
expect(game.isRunning).toBe(true);
});
it('should provide a real Scene', function ()
{
expect(scene).toBeDefined();
expect(scene.add).toBeDefined();
expect(scene.sys).toBeDefined();
});
it('should create a real Image', function ()
{
var img = scene.add.image(100, 200, '__DEFAULT');
expect(img.type).toBe('Image');
expect(img.x).toBe(100);
expect(img.y).toBe(200);
expect(img.width).toBe(32);
expect(img.height).toBe(32);
});
it('should create a real Sprite', function ()
{
var sprite = scene.add.sprite(50, 75, '__DEFAULT');
expect(sprite.type).toBe('Sprite');
expect(sprite.x).toBe(50);
expect(sprite.y).toBe(75);
});
it('should create a real Rectangle shape', function ()
{
var rect = scene.add.rectangle(10, 20, 64, 32, 0xff0000);
expect(rect.type).toBe('Rectangle');
expect(rect.x).toBe(10);
expect(rect.y).toBe(20);
expect(rect.width).toBe(64);
expect(rect.height).toBe(32);
});
it('should support setPosition on a Sprite', function ()
{
var sprite = scene.add.sprite(0, 0, '__DEFAULT');
sprite.setPosition(200, 300);
expect(sprite.x).toBe(200);
expect(sprite.y).toBe(300);
});
it('should support setScale on an Image', function ()
{
var img = scene.add.image(0, 0, '__DEFAULT');
img.setScale(2, 3);
expect(img.scaleX).toBe(2);
expect(img.scaleY).toBe(3);
});
it('should support setAlpha on a Sprite', function ()
{
var sprite = scene.add.sprite(0, 0, '__DEFAULT');
sprite.setAlpha(0.5);
expect(sprite.alpha).toBe(0.5);
});
it('should support setAngle on a Sprite', function ()
{
var sprite = scene.add.sprite(0, 0, '__DEFAULT');
sprite.setAngle(90);
expect(sprite.angle).toBe(90);
});
it('should support setVisible on a Sprite', function ()
{
var sprite = scene.add.sprite(0, 0, '__DEFAULT');
sprite.setVisible(false);
expect(sprite.visible).toBe(false);
});
it('should support setDepth on a Sprite', function ()
{
var sprite = scene.add.sprite(0, 0, '__DEFAULT');
sprite.setDepth(10);
expect(sprite.depth).toBe(10);
});
it('should support setOrigin on an Image', function ()
{
var img = scene.add.image(0, 0, '__DEFAULT');
img.setOrigin(0, 1);
expect(img.originX).toBe(0);
expect(img.originY).toBe(1);
});
it('should give access to Phaser namespace', function ()
{
var Phaser = helper.Phaser;
expect(Phaser.VERSION).toBeDefined();
expect(Phaser.Math).toBeDefined();
expect(Phaser.Geom).toBeDefined();
var vec = new Phaser.Math.Vector2(3, 4);
expect(vec.length()).toBe(5);
var circle = new Phaser.Geom.Circle(10, 20, 50);
expect(circle.radius).toBe(50);
});
});