Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/rewire.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/getLeakingSrc.js4
-rw-r--r--package.json2
-rw-r--r--test/getLeakingSrc.test.js8
-rw-r--r--test/rewire.test.js12
-rw-r--r--test/testModules/A/moduleA.js6
-rw-r--r--test/testModules/privateModules/privateModuleA.js10
-rw-r--r--test/testModules/privateModules/privateModuleB.js10
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