Files
arkanoid/src/entities/brick/layBricks/layBricks.test.js
T

101 lines
2.8 KiB
JavaScript
Raw Normal View History

import { expect } from 'vitest';
import { layBricks } from './layBricks';
describe('layBricks', () => {
it('Возвращает корректное значение в случае неверного типа параметра', () => {
const wrongType = 'wrong';
expect(layBricks(wrongType, 1, 1)).toBeNull();
expect(layBricks(1, wrongType, 1)).toBeNull();
expect(layBricks(1, 1, wrongType)).toBeNull();
});
it('Возвращает корректное значение в случае неверных размеров кирпича', () => {
const wrongWidth = -1;
const wrongHeight = -1;
expect(layBricks(1, wrongWidth, 1)).toBeNull();
expect(layBricks(1, 1, wrongHeight)).toBeNull();
});
it('Возвращает корректное значение в случае некоректной карты уровня', () => {
const levelMap = ['brick', 'brick'];
expect(layBricks(levelMap, 1, 1)).toBeNull();
});
it('Возвращает корректное значение в случае некоректного отступа', () => {
const levelMap = [
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
];
expect(layBricks(levelMap, 1, 1, -1)).toBeNull();
});
it('Возвращает массив корректных размеров', () => {
const levelMap = [
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
];
const bricks = layBricks(levelMap, 1, 1);
expect(bricks.length).toBe(levelMap.flat().length);
const emptyLevelMap = [
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
];
const emptyBricksArray = layBricks(emptyLevelMap, 1, 1);
expect(emptyBricksArray.length).toBe(0);
});
it('Задает корректные координаты кирпичам', () => {
const levelMap = [
[1, 1],
[1, 1],
];
const brickWidth = 1;
const brickHeight = 1;
const bricks = layBricks(levelMap, brickWidth, brickHeight);
let index = 0;
for (let i = 0; i < levelMap.length; i++) {
for (let j = 0; j < levelMap[i].length; j++) {
if (levelMap[i][j] === 0) {
continue;
}
expect(bricks[index].x).toBe(j * brickWidth);
expect(bricks[index].y).toBe(i * brickHeight);
index++;
}
}
});
it('Верно записывает тип кирпича', () => {
const levelMap = [
[2, 1, 3],
[1, 2, 0],
];
const brickWidth = 1;
const brickHeight = 1;
const bricks = layBricks(levelMap, brickWidth, brickHeight);
let index = 0;
for (let i = 0; i < levelMap.length; i++) {
for (let j = 0; j < levelMap[i].length; j++) {
if (levelMap[i][j] === 0) {
continue;
}
expect(bricks[index].type).toBe(levelMap[i][j]);
index++;
}
}
});
});