All files / src physics.spec.js

100% Statements 66/66
100% Branches 0/0
100% Functions 1/1
100% Lines 66/66

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 671x 1x 1x 1x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 18x 18x 3x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
import { expect } from 'chai';
import { Physics } from './physics.js';
 
const updateStats = () => {};
 
describe('getUseableMove', () => {
  const width = 200;
  const height = 100;
  const pixels = [
    [0, 0, 255],
    [0, 0, 255],
    [255, 255, 255],
  ];
  const player = {
    x: 1, y: 1, width: 1, height: 1, speed: 1,
  };
 
  it('should move a player left if left is requested', () => {
    const newPlayer = { ...player, x: 0 };
    const updatedPlayer = Physics.getUseableMove({
      oldActor: player,
      actor: newPlayer,
      width,
      height,
      pixels,
      locMap: {},
      updateStats,
      useHandycap: false,
    });
    expect(updatedPlayer.x).to.eql(0);
  });
 
  it('should let a player move down if down-right is requested, and right is not allowed', () => {
    const oldPlayer = { ...player, x: 1, y: 0 };
    const newPlayer = { ...player, x: 2, y: 1 };
    const updatedPlayer = Physics.getUseableMove({
      oldActor: oldPlayer,
      actor: newPlayer,
      width,
      height,
      pixels,
      locMap: {},
      updateStats,
      useHandycap: true,
    });
    expect(updatedPlayer.x).to.eql(1);
    expect(updatedPlayer.y).to.eql(1);
  });
 
  it('should let a player move left if down-left is requested, and down is not allowed', () => {
    const oldPlayer = { ...player, x: 1, y: 1 };
    const newPlayer = { ...player, x: 0, y: 2 };
    const updatedPlayer = Physics.getUseableMove({
      oldActor: oldPlayer,
      actor: newPlayer,
      width,
      height,
      pixels,
      locMap: {},
      updateStats,
      useHandycap: true,
    });
    expect(updatedPlayer.x).to.eql(0);
    expect(updatedPlayer.y).to.eql(1);
  });
});