Ich versuche, eine Komponente zu testen, die eine grommetMenu
Komponente rendert. Die Tülle Menu
Komponente rendert ein absolut positioniertes Menü in die oberste Ebene des Dokuments, das als untergeordnetes Element in body
eingefügt wird. Daher rendert es außerhalb des Umfangs des Wrappers. Ich kann es mit document.body.innerHTML
(Verweis auf Jsdom Dokument) finden, aber ich möchte mit ihm interagieren mit Enzym. Irgendwelche Empfehlungen?So testen Sie Enzymkomponenten, die in die oberste Ebene rendern
Mein Test:
const wrapper = mount(
<MyComponent checkThis={checkThisSpy} />
);
wrapper.find('.spec-menu').simulate('click');
console.log(document.body.innerHTML); // Shows the absolute menu inserted into the body
Die Linie in Tülle, die diese document.body.insertBefore(drop.container, document.body.firstChild);
tut. https://github.com/grommet/grommet/blob/master/src/js/utils/Drop.js#L197
Nur auf der Suche nach einer Anleitung für den besten Weg, damit umzugehen. Vielen Dank!
Wird das Menü durch die Tüllenkomponente als weitere untergeordnete Komponente gerendert? Wenn nicht ein Element, das gerade an das dom rechts angehängt ist? In diesem Fall könnten Sie etwas wie Chai-Dom verwenden, um zu überprüfen, ob das innere HTML-Element im gefälschten Dokumentelement vorhanden ist. http://chaijs.com/plugins/chai-dom/ – therewillbecode