From f126dcbe4c97e695ffc2e3de0cfe0a8c32f66fc5 Mon Sep 17 00:00:00 2001 From: Johannes Ewald Date: Wed, 16 Mar 2016 02:15:17 +0100 Subject: Add note on imported globals in README See http://stackoverflow.com/questions/34885024/when-using-rewire-and-sinon-faketimer-order-matters/36025128 Fixes #87 --- README.md | 3 +++ 1 file changed, 3 insertions(+) (limited to 'README.md') diff --git a/README.md b/README.md index 233d4c3..da42d46 100644 --- a/README.md +++ b/README.md @@ -216,6 +216,9 @@ rewire("./myModule.js") === rewire("./myModule.js"); // = false This can especially be a problem if the module is not idempotent [like mongoose models](https://github.com/jhnns/rewire/issues/27). +**Globals are imported into the module's scope at the time of rewiring**
+Since rewire imports all gobals into the module's scope at the time of rewiring, property changes on the `global` object after that are not recognized anymore. This is a [problem when using sinon's fake timers *after* you've called `rewire()`](http://stackoverflow.com/questions/34885024/when-using-rewire-and-sinon-faketimer-order-matters/36025128). + **Dot notation**
Although it is possible to use dot notation when calling `__set__`, it is strongly discouraged in most cases. For instance, writing `myModule.__set__("console.log", fn)` is effectively the same as just writing `console.log = fn`. It would be better to write: -- cgit v1.2.3