2017-11-24 2 views
0

Ich schreibe Integrationstests für mein Meteorprojekt. Ich möchte den Webhook-POST-Handler in meiner App testen. Dies ist, wie es aussieht:Ich weiß nicht, wann Code in Meteor.defer fertig ist.

post() { 
    Meteor.defer(() => { 
    // some logic here, e.g insert/update database 
    }) 
    return { 
    statusCode: 200, 
    } 
} 

Hinweis:Meteor.defer ein Muss ist, weil ich Code 200 (OK) so schnell wie möglich zurückkehren möchten.
Um diesen Webhook zu testen, erstelle ich eine falsche POST-Anfrage an diesen Webhook und überprüfe dann, ob die Datenbank entsprechend aktualisiert wurde. Die Sache ist, dass ich im Test nicht weiß, wann der Code in Meteor.defer beendet ist, deshalb sind meine Behauptungen fehlgeschlagen, weil die Datenbank noch nicht aktualisiert worden ist.
Irgendwelche Vorschläge?

Antwort

0

Ich kam zu einem Workaround: Mocha-Test timeouts zu verwenden, um eine bestimmte Zeit zu warten, bevor Assertions durchgeführt werden. Es ist nicht die beste Lösung, aber es funktioniert im Moment.

Verwandte Themen