Fallo intermitente en la prueba en la rama 'dev' debido a la condición de la carrera
Hace tiempo que no veo esto. Cerraremos por ahora.
Lee la respuesta completa abajo ↓Pregunta
Recomiendo añadir '--bail' después del comando 'mocha' en 'package.json''s 'test' para que sea más fácil de ver, por ejemplo:
"test": "cross-env NODE_PATH=./src mocha --bail --compiladores js:babel-core/register --requieren test/helper.js --timeout 10000 --test recursivo/main.js",
En la última rama 'dev', esto es fácil de reproducir simplemente ejecutando 'npm test' muchas veces:
Prueba TNM &• Prueba TNM &Prueba TNM & Prueba TNM & Prueba TNM &
Tarde o temprano obtendrás:
1 fallo
1) Main SelectorManager ve las pruebas E2E "antes de cada gancho":
ErrorTipo no capturado: this.get(...). getComponent no es una función
en child.getCss (src/editor/modelo/Editor.js:308:43)
a Object.store (src/css_composer/index.js:154:52)
en src/editor/model/Editor.js:345:19
en Array.forEach (<anonymous>)
a child.store (src/editor/modelo/Editor.js:344:27)
en child.updateChanges (src/editor/model/Editor.js:119:12)
en triggerEvents (node_modules/backbone/backbone.js:371:57)
en triggerApi (node_modules/backbone/backbone.js:356:19)
en los eventosApi (node_modules/backbone/backbone.js:155:16)
De niño. Events.trigger (node_modules/backbone/backbone.js:346:5)
en child.set (node_modules/backbone/backbone.js:516:16)
a Timeout._onTimeout (src/editor/modelo/Editor.js:187:14)
Esto parece desaparecer si '.slips' este examen en 'test/specs/selector_manager/e2e/ClassManager.js' en la línea 74:
it.skip('La clase importada en el componente es el mismo modelo del contenedor principal', function() {
var model = components.add({ clases: ['test1'] });
var clModel = model.get('classes').at(0);
var clModel2 = gjs.editor
.get('SelectorManager')
.getAll()
.at(0);
expect(clModel).toIgual(clModel2);
});
Por supuesto, eso no es una solución. Pero puede indicar cuál es el problema subyacente. Parece una condición de carrera de algún tipo.
También desaparece si comentas el 'editor/modelo/Editor.js' de los oyentes del evento:
Módulos de carga
deps.forEach(name => this.loadModule(name));
this.on('change:selectedComponent', this.componentSelected, this);
this.on('change:changesCount', this.updateChanges, this);
¿Quizá los módulos aún no se han cargado completamente y ya hay cambios por procesar? Resultando en 'const wrp = this.get('DomComponents').getComponent();' en la línea 308 de 'Editor.js' para lanzar.
¿Deberíamos esperar a que todos los módulos se hayan cargado antes de adjuntar los oyentes de eventos?
Respuestas (3)
Hace tiempo que no veo esto. Cerraremos por ahora.
¿Deberíamos esperar a que todos los módulos se hayan cargado antes de adjuntar los oyentes de eventos?
Mmmm, ese fragmento de código se ejecuta de forma síncrona, así que no creo que vaya a ayudar
Por cierto, nunca me he encontrado con este problema en mi entorno 🤔
@artf aquí es fácilmente reproducible. Intenta ejecutarlo repetidamente como se ha sugerido antes.
Aquí tienes la prueba:
Mi entorno:
OSX High Sierra 10.13.3 Node.js v9.2.1 Últimas violaciones de la rama de desarrollo cometer #e6593e7ad9a
Por alguna razón, 'this.get('DomComponents')' devuelve nulo cuando debería devolver el envoltorio en la línea 308 en 'editor/model/Editor.js'
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #1421
[Bug]: clase "deshabilitada" en lugar de "activa" para la Vista de Botones del Panel
Hola Supongo que hay un error con la clase cuando el Botón del Panel está desactivado https://github.com/artf/grapesjs/blob/dev/src/panels/...
Issue #1671
[Pregunta] Añadir html una vez que el canvas esté borrado.
Hola Artur Me gustaría añadir algo de código html por defecto cuando los usuarios pulsen el botón de borrar. Por ejemplo, una sección por d...
Issue #1540
[Pregunta] ¿Es posible añadir un evento para la vista previa?
Me gustaría convertir algunos textos cuando un usuario haga clic en el botón de vista previa. por ejemplo, ((nombre)) (en el editor) deberí...
Issue #1535
[Bug]: Después de eliminar un componente personalizado, la vista del rasgo no se limpia
Hola, Estoy usando la biblioteca grapesjs versión 0.14.33. He creado algunos componentes personalizados y he notado que al eliminar los com...
Plugins de pago que cumplen con este problema
Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.
Cargando recomendaciones de plugins de pago...
Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.
Explora plugins gratuitos →Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.
Explora plugins premium →Tutoriales relacionados
Guías detalladas sobre el mismo tema.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.