diff options
-rw-r--r-- | lib/getLeakingSrc.js | 4 | ||||
-rw-r--r-- | package.json | 2 | ||||
-rw-r--r-- | test/getLeakingSrc.test.js | 8 | ||||
-rw-r--r-- | test/rewire.test.js | 12 | ||||
-rw-r--r-- | test/testModules/A/moduleA.js | 6 | ||||
-rw-r--r-- | test/testModules/privateModules/privateModuleA.js | 10 | ||||
-rw-r--r-- | test/testModules/privateModules/privateModuleB.js | 10 |
7 files changed, 35 insertions, 17 deletions
diff --git a/lib/getLeakingSrc.js b/lib/getLeakingSrc.js index 8475908..882300b 100644 --- a/lib/getLeakingSrc.js +++ b/lib/getLeakingSrc.js @@ -4,13 +4,13 @@ * Returns the source code that will leak private vars.
*
* e.g.:
- * "exports.__ = {myPrivateVar: myPrivateVar};"
+ * "module.exports.__ = {myPrivateVar: myPrivateVar};"
*
* @param {Array<String>} leaks
* @return {String}
*/
function getLeakingSrc(leaks) {
- var src = "exports.__ = {",
+ var src = "module.exports.__ = {",
varName,
i;
diff --git a/package.json b/package.json index dd9df63..ad39bdb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ {
"name" : "rewire",
- "version" : "0.1.1",
+ "version" : "0.1.2",
"description" : "Dependency injection for node.js applications",
"keywords" : [
"dependency",
diff --git a/test/getLeakingSrc.test.js b/test/getLeakingSrc.test.js index c9a595f..b1e137b 100644 --- a/test/getLeakingSrc.test.js +++ b/test/getLeakingSrc.test.js @@ -4,13 +4,13 @@ var expect = require("expect.js"), getLeakingWrapper = require("../lib/getLeakingSrc.js");
describe("getLeakingWrapper", function () {
- it("should return 'exports.__ = {};'", function () {
- expect(getLeakingWrapper([])).to.be("exports.__ = {};");
+ it("should return 'module.exports.__ = {};'", function () {
+ expect(getLeakingWrapper([])).to.be("module.exports.__ = {};");
});
- it("should return 'exports.__ = {somethingPrivate:somethingPrivate,somethingSecret:somethingSecret};'", function () {
+ it("should return 'module.exports.__ = {somethingPrivate:somethingPrivate,somethingSecret:somethingSecret};'", function () {
var leakArr = ["somethingPrivate", "somethingSecret"];
expect(getLeakingWrapper(leakArr))
- .to.be("exports.__ = {somethingPrivate:somethingPrivate,somethingSecret:somethingSecret};");
+ .to.be("module.exports.__ = {somethingPrivate:somethingPrivate,somethingSecret:somethingSecret};");
});
});
\ No newline at end of file diff --git a/test/rewire.test.js b/test/rewire.test.js index 3414399..1f8ebf9 100644 --- a/test/rewire.test.js +++ b/test/rewire.test.js @@ -70,18 +70,22 @@ describe("rewire", function () { rewired.exportAll();
expect(rewired.console).to.be(456);
});
- it("should leak private variables", function () {
+ it("should leak private variables with both exports-styles (exports.bla = bla and module.exports = bla)", function () {
var rewired,
leaks = ["myPrivateVar"];
- rewired = rewire("./testModules/A/moduleA.js", null, null, leaks);
+ rewired = rewire("./testModules/privateModules/privateModuleA.js", null, null, leaks);
+ expect(rewired.__.myPrivateVar).to.be("Hello I'm very private");
+ rewired = rewire("./testModules/privateModules/privateModuleB.js", null, null, leaks);
expect(rewired.__.myPrivateVar).to.be("Hello I'm very private");
});
- it("should leak private functions", function () {
+ it("should leak private functions with both exports-styles (exports.bla = bla and module.exports = bla)", function () {
var rewired,
leaks = ["myPrivateFunction"];
- rewired = rewire("./testModules/A/moduleA.js", null, null, leaks);
+ rewired = rewire("./testModules/privateModules/privateModuleA.js", null, null, leaks);
+ expect(rewired.__.myPrivateFunction()).to.be("Hello I'm very private");
+ rewired = rewire("./testModules/privateModules/privateModuleB.js", null, null, leaks);
expect(rewired.__.myPrivateFunction()).to.be("Hello I'm very private");
});
it("should leak nothing on demand", function () {
diff --git a/test/testModules/A/moduleA.js b/test/testModules/A/moduleA.js index ffa3290..b8671cf 100644 --- a/test/testModules/A/moduleA.js +++ b/test/testModules/A/moduleA.js @@ -9,12 +9,6 @@ var path = require("path"), toSrc = require("toSrc"), // node_modules path
index = require("../"); // index.js path
-var myPrivateVar = "Hello I'm very private";
-
-function myPrivateFunction() {
- return "Hello I'm very private";
-}
-
function exportAll() {
// expose all required modules to test for mocks
exports.fs = fs;
diff --git a/test/testModules/privateModules/privateModuleA.js b/test/testModules/privateModules/privateModuleA.js new file mode 100644 index 0000000..757df3e --- /dev/null +++ b/test/testModules/privateModules/privateModuleA.js @@ -0,0 +1,10 @@ +"use strict"; // run code in ES5 strict mode
+
+var myPrivateVar = "Hello I'm very private";
+
+function myPrivateFunction() {
+ return "Hello I'm very private";
+}
+
+// privateModuleA and privateModuleB use different styles of exports
+exports.bla = "somevalue";
\ No newline at end of file diff --git a/test/testModules/privateModules/privateModuleB.js b/test/testModules/privateModules/privateModuleB.js new file mode 100644 index 0000000..c9e5bc7 --- /dev/null +++ b/test/testModules/privateModules/privateModuleB.js @@ -0,0 +1,10 @@ +"use strict"; // run code in ES5 strict mode
+
+var myPrivateVar = "Hello I'm very private";
+
+function myPrivateFunction() {
+ return "Hello I'm very private";
+}
+
+// privateModuleA and privateModuleB use different styles of exports
+module.exports = function bla() {};
\ No newline at end of file |