diff options
author | frankiebee <frankie.diamond@gmail.com> | 2017-04-03 13:26:25 +0800 |
---|---|---|
committer | frankiebee <frankie.diamond@gmail.com> | 2017-04-03 13:26:25 +0800 |
commit | 89c924101e3ff52849c5a82ced7e058e1fa39dfd (patch) | |
tree | ebc5e65345362b9912d893ee70f3d27a4cf4fd3c /test/helper.js | |
parent | 8d49d519c090d287484008346aba1df6d7ad77e7 (diff) | |
parent | 0a5c634081656c9450d4341b96bab6b4134a0b7a (diff) | |
download | tangerine-wallet-browser-89c924101e3ff52849c5a82ced7e058e1fa39dfd.tar.gz tangerine-wallet-browser-89c924101e3ff52849c5a82ced7e058e1fa39dfd.tar.zst tangerine-wallet-browser-89c924101e3ff52849c5a82ced7e058e1fa39dfd.zip |
Merge branch 'master' into mascara
Diffstat (limited to 'test/helper.js')
-rw-r--r-- | test/helper.js | 51 |
1 files changed, 47 insertions, 4 deletions
diff --git a/test/helper.js b/test/helper.js index a01ea1e53..aaac7580e 100644 --- a/test/helper.js +++ b/test/helper.js @@ -1,11 +1,54 @@ +// disallow promises from swallowing errors +enableFailureOnUnhandledPromiseRejection() + +// logging util var log = require('loglevel') log.setDefaultLevel(5) +global.log = log +// +// polyfills +// + +// dom require('jsdom-global')() + +// localStorage window.localStorage = {} -if (!('crypto' in window)) { window.crypto = {} } -window.crypto.getRandomValues = require('polyfill-crypto.getrandomvalues') +// crypto.getRandomValues +if (!window.crypto) window.crypto = {} +if (!window.crypto.getRandomValues) window.crypto.getRandomValues = require('polyfill-crypto.getrandomvalues') -window.log = log -global.log = log + + +function enableFailureOnUnhandledPromiseRejection() { + // overwrite node's promise with the stricter Bluebird promise + global.Promise = require('bluebird') + + // modified from https://github.com/mochajs/mocha/issues/1926#issuecomment-180842722 + + // rethrow unhandledRejections + if (typeof process !== 'undefined') { + process.on('unhandledRejection', function (reason) { + throw reason + }) + } else if (typeof window !== 'undefined') { + // 2016-02-01: No browsers support this natively, however bluebird, when.js, + // and probably other libraries do. + if (typeof window.addEventListener === 'function') { + window.addEventListener('unhandledrejection', function (evt) { + throw evt.detail.reason + }) + } else { + var oldOHR = window.onunhandledrejection + window.onunhandledrejection = function (evt) { + if (typeof oldOHR === 'function') oldOHR.apply(this, arguments) + throw evt.detail.reason + } + } + } else if (typeof console !== 'undefined' && + typeof (console.error || console.log) === 'function') { + (console.error || console.log)('Unhandled rejections will be ignored!') + } +}
\ No newline at end of file |