En este reto tenemos que recrear los distintos métodos del objeto Array (length, push, pop, slice, indexOf...) y testearlos utilizando jest.
Realizaremos toda la instalación inicial (husky, eslint, y jest), además, necesitaremos instalar el transpilador Babel para poder trabajar con jest usando módulos ECMA6.
Primero inicializamos el repositorio con los cuatro archivos básicos(readme.md, package.json, .gitignore y .editorconfig), hacemos el Initial commit y subimos el repositorio. A continuación, creamos una rama nueva de configuración inicial e instalamos husky junto con los dos huskys que vamos a utilizar durante el curso.
npm i -D jest
npm i -D @types/jest @babel/plugin-transform-modules-commonjs
"env": {
"browser": true,
"es2021": true,
"node": true,
"jest": true
},
{ "typeAcquisition": { "include":["jest"] } }`
En el test para arrayReduce no he podido utilizar la función .concat para testear usos más complejos de la función, por lo que los he testeado a través de console.log.
const array = [
[0, 1],
[2, 3],
[4, 5],
];
const summ = accumulator.concat(currentValue), []);
const r = arr.arrayReduce(array, summ);
expect(r).toEqual(result);
Cómo exportar todas las funciones de un archivo donde se han importado, de forma que no sea necesario importar una por una en el archivo de test.
Aún falta aprender a configurar sonarCloud para que corra los tests que pasamos por consola.