J’essaie d’éliminer l’avertissement :
[PLUGIN discourse-layouts] Pour éviter les erreurs dans les tests, ajoutez une clé `pluginId` à votre appel `modifyClass`. Cela garantira que la modification n'est appliquée qu'une seule fois.
Cependant, dans le cas du plugin Layouts, il y a un Mixin appelé Sidebars qui est passé à la méthode api.modifyClass() comme ceci :
api.modifyClass(controllerClass, Sidebars) (Voir le code)
J’ai essayé plusieurs choses, y compris l’ajout du pluginId à une propriété du Mixin :
export default Mixin.create({
pluginId: 'discourse-layouts',
router: service(),
path: alias("router._router.currentPath"),
...
});
Cependant, l’avertissement continue d’apparaître.
La seule façon dont j’ai pu supprimer l’avertissement a été d’utiliser ce code au lieu de modifyClass()
const klass = api._resolveClass(controllerClass, {});
klass.class.reopen(Sidebars);
Cependant, je ne pense pas que ce soit la meilleure approche car je saute essentiellement la vérification qui aide à empêcher modifyClass d’être appliqué encore et encore.
Quelqu’un a-t-il des conseils ou des réflexions sur la façon dont je peux ajouter le pluginId à api.modifyClass() lorsqu’un mixin est utilisé et supprimer cet avertissement avec succès ?