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
path: root/test
diff options
context:
space:
mode:
authorJohannes <mail@johannesewald.de>2012-06-04 19:46:12 +0400
committerJohannes <mail@johannesewald.de>2012-06-04 19:46:12 +0400
commit18ca74d9c514ad0df3ff92b4310afde36434e808 (patch)
tree8372545d55fee77c73517f290b1d4a4151e8b7b3 /test
parent57cb8ac4d3a7026af4f0aa27a0cd2c99e7fac177 (diff)
fixed bug when trying to leak private variables while using "module.exports = ..."
Diffstat (limited to 'test')
-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
5 files changed, 32 insertions, 14 deletions
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