mercredi 24 février 2016

Error in testing a Meteor helper function with Jasmine

I have a helper function in MeteorJS as given below:

Template.cars.helpers({
    models : function() {
        var currentUserId = Meteor.userId();
        return cars.find({userId: currentUserId});
    }
});

I am trying to write a Jasmine test which will check if the Meteor.userId() function is called once when the models helper is called. I have mocked the Meteor.userId() function,and my code is given below:

describe("test cars collection", function() {

    beforeEach(function() {
        var Meteor = {
            userId: function() {
                return 1;
            }
        };        
    });

    it("userId should be called once", function() {
        Template.cars.__helpers[' models']();
        spyOn(Meteor, 'userId').and.callThrough();
        expect(Meteor.userId.calls.count()).toBe(1);
    });
}); 

However, the result is showing Expected 0 to be 1. I am new to Jasmine and do not really know how to make the correct call to the Meteor.userId() function, while calling the models helper. I think the way I am spying on it is wrong, but I have not been able to figure it out. Can somebody help please?

Aucun commentaire:

Enregistrer un commentaire