2015-06-29 7 views
0

Я пытаюсь протестировать React with Flux code с помощью Jest. Я новичок в модульном тестировании.Проблемы с использованием Jest с внешними зависимостями

Я думаю, что я делаю что-то не так с насмешкой над моими зависимостями (если честно, насмешливая штука меня смущает).

Вот что у меня возникают проблемы с:

//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: '[email protected]' 
    }; 

    //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 файла: Функциональность jsonwebtoken, кажется, не будет работать на всех

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; 

. Если я зарегистрирую actionLogin.jwt, он просто возвращает undefined. Любая идея, что я делаю неправильно здесь?

Приветствия

ответ

1

После недолгого поиска вокруг, и на самом деле пытается выяснить другой вопрос, который я нашел ответ. просто добавьте

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

в файл package.json

Смежные вопросы