import { Ball } from '../ball'; import { clone } from './clone'; describe('clone', () => { it('Возвращает корректное значение при неверных типах аргументов', () => { expect(clone(null, 20)).toBeNull(); expect(clone(new Ball(0, 0, 10, 3), '20')).toBeNull(); }); it('Клонирует мяч и задает корректное значение скоростей по осям X и Y', () => { const ball = new Ball(100, 200, 10, 90); ball.status = 'moving'; ball.horizontalSpeed = 3; ball.verticalSpeed = 4; const clonedBall = clone(ball, 90); expect(clonedBall).toBeInstanceOf(Ball); expect(clonedBall).not.toEqual(ball); expect(clonedBall.x).toBe(100); expect(clonedBall.y).toBe(200); expect(clonedBall.status).toBe('moving'); expect(clonedBall.horizontalSpeed).toBeCloseTo(-4); expect(clonedBall.verticalSpeed).toBeCloseTo(3); }); });