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>2015-02-17 03:07:22 +0300
committerJohannes Ewald <johannes.ewald@peerigon.com>2015-02-17 03:07:22 +0300
commit39bf586fba7022a1a7cf61515ec45fad9dcbe846 (patch)
treedce7944da0601d9e5e8983d19857dffb158e9c05 /lib
parent02a15ea0eeaa4059535abad14d15e20df82feea4 (diff)
Add possibility to mock undefined, implicit globals
Fixes #35
Diffstat (limited to 'lib')
-rw-r--r--lib/__set__.js16
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/__set__.js b/lib/__set__.js
index 851a340..bdb5042 100644
--- a/lib/__set__.js
+++ b/lib/__set__.js
@@ -25,7 +25,13 @@ function __set__() {
if (arguments.env.hasOwnProperty(arguments.varName)) {
arguments.varValue = arguments.env[arguments.varName];
arguments.src += arguments.varName + " = arguments.env[" + JSON.stringify(arguments.varName) + "]; ";
- arguments.revertArgs[0][arguments.varName] = eval(arguments.varName);
+ try {
+ // Allow tests to mock implicit globals
+ // @see https://github.com/jhnns/rewire/issues/35
+ arguments.revertArgs[0][arguments.varName] = eval(arguments.varName);
+ } catch (err) {
+ arguments.revertArgs[0][arguments.varName] = undefined;
+ }
}
}
} else if (typeof arguments.varName === "string" && arguments.length === 2) {
@@ -33,7 +39,13 @@ function __set__() {
throw new TypeError("__set__ expects a non-empty string as a variable name");
}
arguments.src = arguments.varName + " = arguments.varValue;";
- arguments.revertArgs = [arguments.varName, eval(arguments.varName)];
+ try {
+ // Allow tests to mock implicit globals
+ // @see https://github.com/jhnns/rewire/issues/35
+ arguments.revertArgs = [arguments.varName, eval(arguments.varName)];
+ } catch (err) {
+ arguments.revertArgs = [arguments.varName, undefined];
+ }
} else {
throw new TypeError("__set__ expects an environment object or a non-empty string as a variable name");
}