aboutsummaryrefslogtreecommitdiffstats
path: root/mascara/test/util/mascara-test-helper.js
diff options
context:
space:
mode:
Diffstat (limited to 'mascara/test/util/mascara-test-helper.js')
-rw-r--r--mascara/test/util/mascara-test-helper.js40
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()
+ }
+}