J'ai un composant que je teste avec Enzyme qui ressemble à ceci:
<RichTextEditor name="name" onChange={[Function]} value="<p>what</p>" focus={false}>
<div className="rich-text-editor">
<div className="btn-group" role="group">
<StyleButton active={false} icon="fa-list-ul" label="UL" onToggle={[Function]} style="unordered-list-item">
// ...
J'essaie de détecter la présence du composant StyleButton comme ceci:
mount(<RichTextEditor />).find('StyleButton[label="UL"]')
Mais aucun composant n'est retourné. Je peux trouver tous les StyleButtons en recherchant simplement la chaîne "StyleButton" mais je ne peux pas trouver par propriété, y compris en utilisant le sélecteur de propriété seul.
Le premier bloc de code que j'ai collé là-haut provient de la sortie de débogage du montage du RichTextEditor, donc le StyleButton est définitivement là.
Des idées?
Merci.
Dans la documentation, il n'y a pas d'option pour mélanger le nom du composant avec les accessoires :
Vous pouvez utiliser findWhere :
wrapper.findWhere(n => n.name() === 'StyleButton' && n.prop('label') === 'UL')
Ligne de code pour monter un éditeur de texte riche!
mount(<RichTextEditor />).find('StyleButton').find('[label="UL"]');
Puisque find
renvoie un autre ReactWrapper
vous pouvez les enchaîner de cette façon: mount(<RichTextEditor />).find({label:"UL"}).find(StyleButton)
Remarque: l'ordre est important.
Inspiré par le commentaire de @ romanlv, mais je trouve cette syntaxe plus claire.