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/lib
diff options
context:
space:
mode:
authorJohannes Ewald <johannes.ewald@peerigon.com>2014-07-08 03:16:29 +0400
committerJohannes Ewald <johannes.ewald@peerigon.com>2014-07-08 03:16:29 +0400
commit71733c8dad414c08efd57821b896bfc1d6868e22 (patch)
tree12668ac33f7f8a2e350b514027429aa6c2690e63 /lib
parentba5edffe2fab999c0b0b31b6c6ae7acb9ea943bf (diff)
Move __with__-function into own module
Diffstat (limited to 'lib')
-rw-r--r--lib/__set__.js28
-rw-r--r--lib/__with__.js34
-rw-r--r--lib/rewire.js5
3 files changed, 39 insertions, 28 deletions
diff --git a/lib/__set__.js b/lib/__set__.js
index feea24a..3fcfbdb 100644
--- a/lib/__set__.js
+++ b/lib/__set__.js
@@ -7,9 +7,7 @@
*
* @param {String|Object} varName name of the variable to set
* @param {String} varValue new value
- * @throws {TypeError}
- * @throws {ReferenceError} When the variable is unknown
- * @return {*}
+ * @return {Function}
*/
function __set__() {
arguments.varName = arguments[0];
@@ -42,28 +40,8 @@ function __set__() {
eval(arguments.src);
return function (snapshot) {
- __set__(snapshot);
+ module.exports.__set__(snapshot);
}.bind(null, arguments.snapshot);
}
-function __with__() {
- var args = arguments;
-
- return function (callback) {
- var undo;
-
- if (typeof callback !== "function") {
- throw new TypeError("__with__ expects a callback function")
- }
-
- undo = __set__.apply(null, args);
-
- try {
- callback();
- } finally {
- undo();
- }
- }
-}
-
-module.exports = {"__set__": __set__, "__with__": __with__};
+module.exports = __set__;
diff --git a/lib/__with__.js b/lib/__with__.js
new file mode 100644
index 0000000..ef29c8c
--- /dev/null
+++ b/lib/__with__.js
@@ -0,0 +1,34 @@
+"use strict";
+
+/**
+ * This function will be stringified and then injected into every rewired module.
+ *
+ * Calling myModule.__with__("myPrivateVar", newValue) returns a function where
+ * you can place your tests. As long as the returned function is executed variables
+ * will be set to the given value, after that all changed variables are reset back to normal.
+ *
+ * @param {String|Object} varName name of the variable to set
+ * @param {String} varValue new value
+ * @return {Function}
+ */
+function __with__() {
+ var args = arguments;
+
+ return function (callback) {
+ var undo;
+
+ if (typeof callback !== "function") {
+ throw new TypeError("__with__ expects a callback function");
+ }
+
+ undo = module.exports.__set__.apply(null, args);
+
+ try {
+ callback();
+ } finally {
+ undo();
+ }
+ };
+}
+
+module.exports = __with__; \ No newline at end of file
diff --git a/lib/rewire.js b/lib/rewire.js
index 61160fd..086cc27 100644
--- a/lib/rewire.js
+++ b/lib/rewire.js
@@ -1,9 +1,8 @@
var Module = require("module"),
fs = require("fs"),
__get__ = require("./__get__.js"),
- setModule = require ("./__set__.js"),
- __set__ = setModule["__set__"],
- __with__ = setModule["__with__"],
+ __set__ = require ("./__set__.js"),
+ __with__ = require("./__with__.js"),
getImportGlobalsSrc = require("./getImportGlobalsSrc.js"),
detectStrictMode = require("./detectStrictMode.js"),
moduleEnv = require("./moduleEnv.js");