diff options
author | Johannes Ewald <johannes.ewald@peerigon.com> | 2015-02-17 03:07:22 +0300 |
---|---|---|
committer | Johannes Ewald <johannes.ewald@peerigon.com> | 2015-02-17 03:07:22 +0300 |
commit | 39bf586fba7022a1a7cf61515ec45fad9dcbe846 (patch) | |
tree | dce7944da0601d9e5e8983d19857dffb158e9c05 /lib | |
parent | 02a15ea0eeaa4059535abad14d15e20df82feea4 (diff) |
Add possibility to mock undefined, implicit globals
Fixes #35
Diffstat (limited to 'lib')
-rw-r--r-- | lib/__set__.js | 16 |
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"); } |