diff options
Diffstat (limited to 'mascara/test/util/mascara-test-helper.js')
-rw-r--r-- | mascara/test/util/mascara-test-helper.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/mascara/test/util/mascara-test-helper.js b/mascara/test/util/mascara-test-helper.js new file mode 100644 index 000000000..1ed576005 --- /dev/null +++ b/mascara/test/util/mascara-test-helper.js @@ -0,0 +1,40 @@ +const EventEmitter = require('events') +const IDB = require('../../../mascara/src/lib/index-db-controller') +const KEY = 'metamask-test-config' +module.exports = class Helper extends EventEmitter { + constructor () { + super() + } + + tryToCleanContext () { + this.unregister() + .then(() => this.clearDb()) + .then(() => super.emit('complete')) + .catch((err) => super.emit('complete')) + } + + unregister () { + return global.navigator.serviceWorker.getRegistration() + .then((registration) => { + if (registration) return registration.unregister() + .then((b) => b ? Promise.resolve() : Promise.reject()) + else return Promise.resolve() + }) + } + clearDb () { + return new Promise ((resolve, reject) => { + const deleteRequest = global.indexDB.deleteDatabase(KEY) + deleteRequest.addEventListener('success', resolve) + deleteRequest.addEventListener('error', reject) + }) + + } + mockState (state) { + const db = new IDB({ + version: 2, + key: KEY, + initialState: state + }) + return db.open() + } +} |