UNPKG

svelte-phaser

Version:

Create Phaser 3 games with Svelte 3

73 lines 2.08 kB
import { render } from '@testing-library/svelte'; import { getContext, tick } from 'svelte'; import GameObject from './GameObject.svelte'; import { createGame, asMock } from './test-utils'; jest.mock('svelte', () => (Object.assign(Object.assign({}, jest.requireActual('svelte')), { getContext: jest.fn() }))); let scene; let game; let instance; beforeAll(async () => { const setup = await createGame(); game = setup.game; scene = setup.scene; asMock(getContext).mockImplementation((name) => { switch (name) { case 'phaser/scene': return scene; case 'phaser/game': return game; case 'phaser/game-object': return instance; } }); }); beforeEach(() => { instance = scene.add.text(0, 0, 'hello'); // mock instance.input as it will be null instance.input = jest.fn(); }); afterEach(() => { instance.destroy(); }); test('active', async () => { render(GameObject, { instance, active: false, }); expect(instance.active).toEqual(false); }); test('draggable', async () => { const { component: { $$set }, } = render(GameObject, { instance, interactive: { shape: new Phaser.Geom.Rectangle(0, 0, 10, 10) }, }); jest.spyOn(scene.input, 'setDraggable'); $$set({ draggable: true }); await tick(); expect(scene.input.setDraggable).toHaveBeenCalledWith(instance, true); $$set({ draggable: false }); await tick(); expect(scene.input.setDraggable).toHaveBeenCalledWith(instance, false); }); test('name', async () => { render(GameObject, { instance, name: 'bob', }); expect(instance.name).toEqual('bob'); }); test('renderFlags', async () => { render(GameObject, { instance, renderFlags: 1, }); expect(instance.renderFlags).toEqual(1); }); test('tabIndex', async () => { render(GameObject, { instance, tabIndex: 1, }); expect(instance.tabIndex).toEqual(1); }); //# sourceMappingURL=GameObject.spec.js.map