describe('Batería de test para libreria.js', function(done) { let inputNumber, inputInteger, inputFloat; this.timeout(60000); before(function() { inputNumber = promptNumero(); inputInteger = promptEntero(); inputFloat = promptFloat(); }); describe('función metrosAPulgadas()', function() { it('debe retornar number', () => { chai.assert.isNumber(metrosAPulgadas(1)); }); it('debe retornar valor en pulgadas correspondiente a 1 metro', () => { chai.assert.strictEqual(metrosAPulgadas(1), 39.3701); }); }); describe('función binomioAlCuadrado()', function() { it('debe retornar el cuadrado de la suma de 2 y 3', () => { chai.assert.strictEqual(binomioAlCuadrado(2,3), 25); }); }); describe('función generarRGB()', function() { it('debe retornar string', () => { chai.assert.isString(generarRGB()); }); it('debe retornar string con formato rgb(r,g,b)', () => { chai.expect(generarRGB()).to.match(/^rgb\((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]),(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]),(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\)$/); }); }); describe('función generarRGBHex()', function() { it('debe retornar string con formato color hexadecimal', () => { chai.expect(generarRGBHex()).to.match(/^#([A-Fa-f0-9]{6})/); }); }); describe('función tablaMultiplicar()', function() { let numero; let regExp; before(function() { numero = Math.round(Math.random() * 10); regExp = new RegExp(`\\s*(${numero} ?[x|X|*] ?\\d{1,} ?= ?\\d{1,}\\s*){9,}`, "g"); }); it('debe retornar un string de la tabla de multiplicar de un número entero', () => { chai.expect(tablaMultiplicar(numero)).to.match(regExp); }); }); describe('función tablaMultiplicarUL()', function() { let numero; let regExp; before(function() { numero = Math.round(Math.random() * 10); regExp = new RegExp(`^$`, "g"); }); it('debe retornar un string de la tabla de multiplicar de un número entero en formato lista desordenada HTML', () => { chai.expect(tablaMultiplicarUL(numero)).to.match(regExp); }); }); describe('función potencia()', function() { it('debe retornar 2 elevado a 8', () => { chai.assert.strictEqual(potencia(2,8), 256); }); it('debe retornar 10 elevado a 0', () => { chai.assert.strictEqual(potencia(10,0), 1); }); }); describe('función factorial()', function() { it('debe retornar factorial de 5', () => { chai.assert.strictEqual(factorial(5), 120); }); it('debe retornar factorial de 0', () => { chai.assert.strictEqual(factorial(0), 1); }); }); describe('función factorialRecursivo()', function() { it('debe retornar factorial de 5', () => { chai.assert.strictEqual(factorialRecursivo(5), 120); }); it('debe retornar factorial de 0', () => { chai.assert.strictEqual(factorialRecursivo(0), 1); }); }); describe('función esInt()', function() { it('debe retornar true al pasar 7 como parámetro', () => { chai.assert.isTrue(esInt(7)); }); it('debe retornar false al pasar 2.5 como parámetro', () => { chai.assert.isFalse(esInt(2.5)); }); it('debe retornar false al pasar "int" como parámetro', () => { chai.assert.isFalse(esInt("int")); }); }); describe('función esImpar()', function() { it('debe retornar true al pasar 3 como parámetro', () => { chai.assert.isTrue(esImpar(3)); }); it('debe retornar false al pasar 2 como parámetro', () => { chai.assert.isFalse(esImpar(2)); }); it('debe retornar false al pasar "2.5" como parámetro', () => { chai.assert.isFalse(esImpar(2.5)); }); it('debe retornar false al pasar "impar" como parámetro', () => { chai.assert.isFalse(esImpar("impar")); }); it('debe retornar false al pasar "" como parámetro', () => { chai.assert.isFalse(esImpar("")); }); it('debe retornar false al pasar null como parámetro', () => { chai.assert.isFalse(esImpar(null)); }); }); describe('función esImparV2()', function() { it('debe retornar true al pasar 3 como parámetro', () => { chai.assert.isTrue(esImparV2(3)); }); it('debe retornar false al pasar 2 como parámetro', () => { chai.assert.isFalse(esImparV2(2)); }); it('debe retornar false al pasar "2.5" como parámetro', () => { chai.assert.isFalse(esImparV2(2.5)); }); it('debe retornar false al pasar "impar" como parámetro', () => { chai.assert.isFalse(esImparV2("impar")); }); it('debe retornar false al pasar "" como parámetro', () => { chai.assert.isFalse(esImparV2("")); }); it('debe retornar false al pasar null como parámetro', () => { chai.assert.isFalse(esImparV2(null)); }); }); describe('función promptNumero()', function() { it('debe retornar número si usuario introduce número', () => { chai.assert.isNumber(inputNumber); }); it('debe retornar null si usuario no introduce nada o cancela', () => { chai.expect(inputNumber).to.be.null; }); }); describe('función promptEntero()', function() { it('debe retornar número entero si usuario introduce número entero', () => { chai.expect(inputInteger).to.not.be.null; chai.expect(inputInteger % 1).to.equal(0); }); it('debe retornar null si usuario no introduce nada o cancela', () => { chai.expect(inputInteger).to.be.null; }); }); describe('función promptFloat()', function() { it('debe retornar número decimal si usuario introduce número decimal', () => { chai.expect(inputFloat).to.not.be.null; chai.expect(inputFloat % 1).to.not.equal(0); }); it('debe retornar null si usuario no introduce nada o cancela', () => { chai.expect(inputFloat).to.be.null; }); }); done(); });