2017-02-04 6 views
0

Ich versuche, ein Ereignis in einem Template zu testen. Innerhalb des Click-Ereignisses gibt es eine reaktive Variable, die gesetzt wird.Testen einer ReactiveVar in Meteor

Der Test wird vom Reaktiven Var blockiert.

Irgendwelche Ideen, wie ich eine reaktive var in einer Vorlage stub oder spotte? Ich habe versucht, es der Vorlage hinzuzufügen (template.reactiveVar = "was auch immer"), aber nicht gehen, da ich nicht denke, dass es beschreibbar ist.

Die ?? geben Sie an, wo ich mich frage, was ich setzen soll.

es ('stellt eine reaktive var, wenn eine Schaltfläche geklickt wird', function() {

Template.button.fireEvent('click ', { 
    context: { some: 'values'}, 
    event: {'target': {'text': 'randomText' } }, 
    templateInstance:new Template('upload', function(e) { 
     this.reactiveVar = new ReactiveVar("not clicked) 
    }) 
}); 

chai.assert.equal(Template.reactiveVar, "clicked")}); 

// The actual template is below.. 

Template.button.events{(
'click button': function(evt, template){ 
    var text = evt.target.text 
    template.reactiveVar.set(text) 
    } 
}); 

Das Ergebnis ist ... Typeerror: kann Eigenschaft 'set' undefinierter

lesen irgendwelche Ideen?

Antwort

0

ich vermuten, dass das Ereignis tatsächlich feuert und durch~~POS=TRUNC zu Ihren Event-Handler vor dem Rückruf, der die reaktive var erzeugt hat laufen.

Sie sollten die reaktive Variable erstellen, wenn Sie die Vorlage zum ersten Mal unabhängig von Ihrem Test erstellen: