Open re-jim opened 8 years ago
You can turn it off with this
mockery.enable({
warnOnUnregistered: false
});
+1 this issue.
The problem with turning it off is that that also turns off warning on unregistered which you DON'T want.
The specific use case here is "I specifically allowed a thing; you should also allow its dependencies."
@kkragenbrink - may be you have to try https://github.com/theKashey/rewiremock. It is inspired by mockery but does not contain issues like this. Check https://medium.com/@antonkorzunov/how-to-mock-dependency-in-a-node-js-and-why-2ad4386f6587
Sometimes I take the approach of registering third-party components as their own mocks, before enabling mockery, and then requiring the module under test. It is a bit like marking them as "trusted for the purpose of this test".
// selected excerpt
const fpath = '../../routes/v1/models/foo.js';
const mockery = require('mockery');
describe(`unit ${fpath}`, function() {
let fn; // function under test
beforeEach(function(done) {
mockery.registerAllowable(fpath);
mockery.registerMock('bluebird', require('bluebird'));
mockery.registerMock('uuid', require('uuid'));
mockery.enable({ useCleanCache: true });
fn = require(fpath);
Similar to #35, when using something like, say express, and registering it as allowable, I get lots of warnings about what isn't allowed. This seems like clutter