javascript - Why are my tests failing and console.log() statements within a lodash method not logging? -
i have failing tests breaking @ various lodash methods work fine in browser. while trying debug threw in console.log()s within callback argument see what's going on, not showing in tests. same code run in browser both works fine , writes console. suspect breaking functionality related missing log statements.
this angular app in i'm supplying lodash service.
app
app.value('_', window._); app.service('myservice', function(_) { return { filternulls: function(obj) { // logs correctly everywhere console.log(obj); return _.omit(obj, function(val, key) { // logs in browsers not in jasmine/karma environment console.log('test'); return val === null; }); } }; }); tests
describe('myservice', function() { beforeeach(function() { module(function($provide) { $provide.value('_', window._); }); }); it('should strip nulls', inject(function(myservice) { // fails because null value not removed expect(myservice.filternulls({ key: 'key1', someprop: 'bar', someotherprop: null })) .toequal({ key: 'key1', someprop: 'bar' }); }); });
i'm not sure of why logs aren't showing when karma runs - me when test code. there may problem not obvious or me.
i can usage of _.omit incorrect. the docs:
the callback bound thisarg , invoked 3 arguments; (value, key, object).
meanwhile, callback parameters this:
function(key, val) { .. } this minor adjustment makes test pass me:
function(val) { .. }
Comments
Post a Comment