Browserify plugin that allows you to replace proxyquire with proxyquireify without code changes. If you only need to run your tests in a browser, just use proxyquireify directly. Make sure you're not using proxyquire features that don't have proxyquireify counterparts.
$ npm install --save-dev proxyquire-universal proxyquire proxyquireify
proxyquire-universal sets proxyquire and proxyquireify as peer dependencies so all three packages will be siblings in your node_modules
folder. You have full control over which versions are used.
Write your tests for Node:
var proxyquire = require('proxyquire');
proxyquire('./a', stubs);
Then add the 'proxyquire-universal'
plugin when you build your test bundle for the browser:
browserify()
.plugin('proxyquire-universal')
.bundle()
.pipe(fs.createWriteStream('test-bundle.js'));
proxyquire-universal takes care of calling bundle.plugin(proxyquireify.plugin)
automatically. You should not register proxyquireify manually.
proxyquireify has a very similar API to proxyquire and will be a perfect drop-in replacement for most use cases. However, there are certain proxyquire features that are not available in proxyquireify:
If you discover a case where proxyquire and proxyquireify behave differently, please open an issue with relevant code.
MIT © Ben Drucker