No puedo entender cómo hacer que Require y Jasmine trabajen juntos.
Lo que me gustaría hacer es usar Jasmine para escribir pruebas unitarias para algunos módulos. Tengo una aplicación pequeña que tiene una configuración requerida, y ahora estoy tratando de cargar esa misma configuración en un contexto de Jasmine, pero obtengo errores de diferentes tipos.
Esto es lo que estoy tratando de hacer:
spec/myModuleTests.spec.js :
require(["/lib/require-init.js"], function (config) { require(['module1', 'module2'], describe("my TestCase", function () { it("isATrap", function() { expect(1).toEqual(2); }); }))}); Y eso es lo que obtengo cuando ejecuto npx jasmine :
TypeError [ERR_INVALID_ARG_TYPE]: The "id" argument must be of type string. Received an instance of Array at new NodeError (node:internal/errors:371:5) at validateString (node:internal/validators:119:11) at Module.require (node:internal/modules/cjs/loader:998:3) at require (node:internal/modules/cjs/helpers:102:18) at Object.<anonymous> (D:\.. ..spec.js:1:1) at Module._compile (node:internal/modules/cjs/loader:1101:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Module.require (node:internal/modules/cjs/loader:1005:19) { code: 'ERR_INVALID_ARG_TYPE' }Ahora, eso no sería tan extraño si no solo copiara el mismo código de app.js, excepto que no hay una "descripción" para una prueba allí, sino la aplicación real, donde el código se ve así :
lib/aplicación.js
require(["/lib/require-init.js"], function (config) { require(['module1', 'module2'], console.log(module1); module2.init(); }); });Y eso funciona totalmente, sin errores en absoluto.
Todo lo que hago con la aplicación "real" es llamarla en HTML:
<script data-main="/lib/app.js" src="/modules/vendor/requirejs/require-2.3.6.js"></script> lib/require-init.js
require.config({ baseUrl: './', paths: { module1: '/lib/module1', module2: '/lib/module2' } });¿Qué estoy haciendo mal?