Files
arkanoid/src/lib/processBrickCollision/processBrickCollision.test.js
T

34 lines
1.3 KiB
JavaScript

import { Game } from '../../game';
import { processBrickCollision } from './processBrickCollision';
describe('processBrickCollision', () => {
it('Возвращает корректное значение при неверных типах аргументов', () => {
const game = new Game([[[1]]]);
expect(processBrickCollision(null, game.ball)).toBeNull();
expect(processBrickCollision(game, null)).toBeNull();
});
it('Возвращает креектное значение если мяч не касается кирпичей', () => {
const game = new Game([[[1]]]);
game.ball.x = 5;
game.ball.y = 500;
expect(processBrickCollision(game, game.ball)).toBe(false);
});
it('При столкновении разрушает кирпич и меняет направление мяча', () => {
const game = new Game([[[1]]]);
const brick = game.bricks[0];
game.ball.x = brick.x + game.ball.radius + 1;
game.ball.y = brick.y + brick.height + game.ball.radius + 1;
game.ball.horizontalSpeed = 0;
game.ball.verticalSpeed = -10;
game.ball.moveForward(1);
expect(processBrickCollision(game, game.ball)).toBe(true);
expect(brick.alive).toBe(false);
expect(game.ball.verticalSpeed).toBe(10);
});
});