node-encapsulation
set private and public methods/properties but expose private methods/properties to the test environment.
This module is a wrapper when creating node modules. This lets you easily expose methods/properties you really want to be private but still need to run tests on.
For eg.
moduleexports = { console } { console };
Therefore, instead of exposing methods/properties you don't really want to then you could do the following
var encapsulate = build;var private = {} public = {}; private{ console} public{ private;} moduleexports = ;
In the normal execution of your app:
var encapsulate = build;var klazz = ;/**yeilds: {myPublicMethod: Function}**/
When process.env.NODE_ENV is set to 'test':
var encapsulate = build;var klazz = ;/**yeilds: {myPrivateMethod: Function, myPublicMethod: Function}**/
The environment to look for by default is 'test' but can be configured:
/**This only needs to be called once at the start of your app**/;
Notes
- Be careful not to use the same property names for public and private properties
- Public properties take precedence over private properties
- this is an experiment
- pull requests are welcome
- report issues if you see any (fix it if possible :-) )