¿Cómo configuro Jasmine en el entorno Rails 6 (donde Webpack reemplaza la canalización de activos para Javascript) para poder probar los módulos Javascript que he escrito para mi aplicación?
Instalé la gema de jazmín, ejecuté rails generate jasmine:instally edité jasmine.ymlpara señalar la ubicación de mi fuente y especificaciones de Javascript.
El problema es que no puedo usar declaraciones de importación / exportación. (Por ejemplo, intentar cargar mi primera módulo a resultados de la prueba en este error en Chrome: Uncaught SyntaxError: Unexpected token 'export')
Por lo que puedo decir, necesito configurar Jasmine para usar babel; pero no tengo suerte de encontrar instrucciones sobre cómo hacer esto en el nuevo diseño de Rails 6.

Respuestas:
Sí tienes razón. El principal problema
jasmine-gemes que no canaliza la especificación a través de babel. Permítanme publicar la solución más rápida a su problema y después de eso, pensaré en la posible implementación de un enfoque similar enjasmine-gem.La idea principal es canalizar las especificaciones a través del paquete web de rieles siempre que tenga todas las configuraciones de babel requeridas.
jasmine-coreya que no usaremosjasmine-gemen esta soluciónAhora cree dos paquetes de paquetes web adicionales. Uno es para Jasmine y contendrá solo Jasmine y el corredor de prueba
Y el segundo para su código de aplicación y las especificaciones
Presta atención a tus
'../javascripts'y'../spec'caminos. Para mí, parecía'../../assets/javascripts'y'../../../spec'respetuosamente.Luego agregue el Webpack ProvidePlugin para Jasmine (agregue este código a
config/webpack/environment.js)Agregue la página de Jasmine Ranner a su aplicación
/jasminerutaEsta respuesta se prepara sobre la base de esta publicación , sin embargo, volví a verificar las instrucciones en ruby 2.6.3, rails 6.0.2, agregué los cambios apropiados a las recomendaciones y comprobé que esto funciona.
Por favor, avíseme si mi respuesta fue útil para usted o si necesita información adicional. Sin embargo, voy a trabajar en una solución que tenga éxito con
jasminegem o implementación similar.fuente
bootstrap.min.jsestá arrojando un error que básicamente significajqueryque no se está cargando antesbootstrap. Sin embargo,] No puedo encontrar lo que en este código cambia el orden de carga de JS ... especialmente porque mi bootstrap se está cargando a través de CDN en el diseño de la aplicación después de lajavascript_pack_tag 'application'línea yapplication.jsya tiene unrequire('jquery'). Si tiene esta configuración en un entorno local, ¿puede cargar bootstrap a través de CDN en el diseño de la aplicación y ver si funciona?