Heeft u problemen met behulp van Jest met externe dependancies

stemmen
0

Ik probeer om te testen Reageer met Flux code met behulp van Jest. Ik ben redelijk nieuw voor unit testen.

Ik denk dat ik iets mis met Mocking mijn dependancies doen (om eerlijk te zijn de spottende ding soort verwart me zijn).

Hier is wat ik heb problemen met:

//LoginStore-test.js
jest.dontMock('../../constants/LoginConstants');
jest.dontMock('jsonwebtoken');
jest.dontMock('underscore');
jest.dontMock('../LoginStore');

describe(login Store, function(){
    var LoginConstants = require('../../constants/LoginConstants');
    var AppDispatcher;
    var LoginStore;
    var callback;
    var jwt = require('jsonwebtoken');

    var _user = {
        email: 'test@test.com'
    };

    //mock actions                                                                                                                                                                                                                            
    var actionLogin = {
        actionType: LoginConstants.LOGIN_USER,
        'jwt': jwt.sign(_user, 'shhh', { expiresInMinutes: 60*5 })
    };

    beforeEach(function(){
        AppDispatcher = require('../../dispatchers/AppDispatcher');
        LoginStore = require('../LoginStore');
        callback = AppDispatcher.register.mock.calls[0][0];
    });

    ...

    it('should save the user', function(){
        callback(actionLogin);
        var user = LoginStore.getUser();
        expect(user).toEqual(_user);
    });

});


});

LoginStore.js file:

var AppDispatcher = require('../dispatchers/AppDispatcher');
var BaseStore = require('./BaseStore');
var LoginConstants = require('../constants/LoginConstants.js');
var _ = require('underscore');
var jwt = require('jsonwebtoken');

//initiate some variables                                                                                                                                                                                                                     
var _user;
var _jwt;

var LoginStore = _.extend({}, BaseStore, {
    getUser: function(){
    return _user;
    }
});

AppDispatcher.register(function(action){

    switch(action.actionType){
    case LoginConstants.LOGIN_USER:
        //set the user                                                                                                                                                                                                                        
        _user = jwt.decode(action.jwt);
        //save the token                                                                                                                                                                                                                      
        _jwt = action.jwt;
    break;

    //do nothing with the default                                                                                                                                                                                                         
    default:
        return true;
    }

    LoginStore.emitChange();

    return true;

});

module.exports = LoginStore;

De jsonwebtokenfunctionaliteit lijkt niet helemaal te werken. Als ik log actionLogin.jwthet gewoon terug undefined. Enig idee wat ik doe hier verkeerd?

Proost

De vraag is gesteld op 29/06/2015 om 02:34
bron van user
In andere talen...                            


1 antwoorden

stemmen
1

Na een beetje zoeken rond, en eigenlijk proberen te achterhalen van een ander probleem vond ik het antwoord. Voeg gewoon toe

"jest": {"modulePathIgnorePatterns": ["/node_modules/"]}

uw package.json bestand

antwoordde op 30/06/2015 om 02:47
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more