Exportar e Importar Funciones entre documentos en Javascript

Exportar:

romanNumerals.js

export function romanNumerals(){
        var numerals = [
            {value: 4, numeral: "IV"},
            {value: 1, numeral: "I"},
        ];

        function fromNumber(number) {
            var result = "";
            numerals.forEach(function (item) {
                for (; number >= item.value; number -= item.value) {
                    result += item.numeral;
                }

            });
            return result;
        };


        return {
            fromNumber,
        }
}

module.exports = romanNumerals;
export default function romanNumerals(){
        var numerals = [
            {value: 4, numeral: "IV"},
            {value: 1, numeral: "I"},
        ];

        function fromNumber(number) {
            var result = "";
            numerals.forEach(function (item) {
                for (; number >= item.value; number -= item.value) {
                    result += item.numeral;
                }

            });
            return result;
        };


        return {
            fromNumber,
        }
}

Importar:

spec.js

import romanNumerals from "../src/romanNumerals";

describe("test de prueba", function () {
    it("verdadero es verdadero", function () {
        expect(true).toBeTruthy();
    });

    it("converts numbers to Roman numerals", function () {
        expect(romanNumerals().fromNumber(1)).toBe("I");
        expect(romanNumerals().fromNumber(2)).toBe("II");
        expect(romanNumerals().fromNumber(3)).toBe("III");
        expect(romanNumerals().fromNumber(4)).toBe("IV");
        // expect(romanNumerals().fromNumber(2648)).toBe("MMDCXLVIII");
    });


});

 

 

Instalar JEST en un proyecto de Javascript

Crear fichero package.json:

npm init  // tipo cuestionario
npm init --yes //crea todo por defecto

 

Instalar jest vía npm:

npm install --save-dev jest

 

Añadir a package.json:

{
  "scripts": {
    "test": "jest"
  }
}

**Si queremos que este fijo abierto el servicio, lo añadimos de la siguiente manera:

{
  "scripts": {
    "test": "jest --watch"
  }
}

**»test»: «jest –watchAll» –>sin git

Con esta mejora, ya no tenemos que estar lanzando el test cada vez, si no cada vez que guardemos, nos lo lanzará.

 

Añadir también esto al package.json si vamos a usar jsdom,

"jest": {
    "verbose": true,
    "testURL": "http://localhost/"
},

https://github.com/jsdom/jsdom/issues/2304

si no dará el siguiente error:

 SecurityError: localStorage is not available for opaque origins
      
      at Window.get localStorage [as localStorage] (node_modules/jsdom/lib/jsdom/browser/Window.js:257:15)
          at Array.forEach (<anonymous>)

 

Vista final del package.json:

 

Crear carpeta test y dentro el archivo spec.js con el siguiente código de ejemplo:

describe("test de prueba", function () {
    it("verdadero es verdadero", function () {
        expect(true).toBeTruthy();
    });
});

**Matchers de Jest para realizar los test

 

Iniciar el test:

npm test

Debería salir una respuesta así, que nos confirma que esta pasando el test:

 


Descarga Proyecto de Ejemplo

 

Links: Documentación Oficial Jest