All files / test BoardTest.js

98.15% Statements 53/54
50% Branches 1/2
100% Functions 16/16
98.15% Lines 53/54

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 67 68 69 70 71 72 73 74 75 76 77 78    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   1x 1x 1x 1x 1x      
let expect;
 
Eif (typeof require !== 'undefined') { // Execution in node
  expect = require('chai').expect;
} else { // Execution in browser
  expect = chai.expect;
}
 
import Board from '../scripts/Board.js';
 
describe('Clase Board tests', ()=>{
 
  describe('Comportamiento del constructor', ()=>{
    it('Debería generar un objeto Board', () => {
      let BoardTest = new Board();
      expect(BoardTest).to.be.a('Object');
    });
    it('Debería tener los siguientes atriburos miembro:', () => {
      let BoardTest = new Board();
      expect(BoardTest).to.have.property('horizontalBoxes');
      expect(BoardTest).to.have.property('verticalBoxes');
      expect(BoardTest).to.have.property('width');
      expect(BoardTest).to.have.property('height');
      expect(BoardTest).to.have.property('elements');
    });
  });
 
  describe('Métodos de la clase', () => {
    it ('Tiene que tener un método para poder dibujar un tablero', () => {
      let BoardTest = new Board();
      expect(BoardTest.draw).to.exist;
    });
    it ('draw tiene que poder ser ejecutado sin errores', () => {
      let BoardTest = new Board();
      expect(BoardTest.draw()).not.to.throw;
    });
    it ('Tiene que tener un método para poder generar un tablero dado un tamaño', () => {
      let BoardTest = new Board();
      expect(BoardTest.build).to.exist;
    });
    it ('Tiene que tener un método para poder generar patrones asimétrico de tablero dado un patrón estandar', () => {
      let BoardTest = new Board();
      expect(BoardTest.makeAsimetricPatern).to.exist;
    });
    it ('makeAsimetricPatern tiene que funcionar', () => {
      let BoardTest = new Board(2, 2);
      let expected = ['black','white', 'white', 'black'];
      expect(BoardTest.makeAsimetricPatern(['black', 'white'])).to.eql(expected);
    });
    it ('Tiene que tener un método par poder importar elementos en las distintas cuadriculas del tablero ', () => {
      let BoardTest = new Board();
      expect(BoardTest.importElements).to.exist;
    });
    it ('Tiene que tener método para poder mover elementos del tablero', () => {
      let BoardTest = new Board();
      expect(BoardTest.move).to.exist;
    });
    it ('Tiene un método para poder convertir coordenadas numéricas a algebráicas', () => {
      let BoardTest = new Board();
      expect(BoardTest.translate).to.exist;
    });
    it ('Translate tiene que poder funcionar', () => {
      let BoardTest = new Board();
      expect(BoardTest.translate(1,1)).to.eql("b2");
      expect(BoardTest.translate(13,8)).to.eql("i14");
    });
    it ('Tiene que existir un método para insertar un elemento en el conjunto de elementos', () => {
      let BoardTest = new Board();
      expect(BoardTest.setElement).to.exist;
    });
    it ('setElement tiene que poder funcionar', () => {
      let BoardTest = new Board(6,6);
      BoardTest.build(100,100);
      BoardTest.setElement(1, 1, 10);
      expect(10).to.eq(BoardTest.elements[BoardTest.translate(1,1)].element);
    });
  });
});