Ember.js - Test du routeur didTransition
-
21-12-2019 - |
Question
J'essaie de tester un mixin personnalisé qui rouvre le routeur Ember et ajoute un écouteur au didTransition
événement.Voici le code :
// my_mixin.js
...
initialize: function(container, application) {
Ember.Router.reopen(App.MyMixin);
var router = container.lookup('router:main');
router.on('didTransition', function() {
this.myFunctionFromMixin();
});
},
...
Ensuite, le test (en Coffeescript) :
test 'hooks myMixinFunction into router didTransition event', ->
expect(1)
myMixinStub = sinon.stub(router, 'myFunctionFromMixin')
router.transitionTo('some/known/route')
# What goes here?
ok(myMixinStub.calledOnce)
Évidemment, cela ne fonctionne pas, puisqu'il doit y avoir un moyen d'effectuer l'assertion une fois que le routeur a terminé la transition.Comment ferais-tu ceci?
Notez qu'il ne s'agit pas d'un test d'intégration, mais d'un test unitaire pour le mixin.
La solution
J'ai fini avec le test suivant et ça marche :
Ember.run ->
router.trigger('didTransition')
ok(myMixinStub.calledOnce)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow