diff --git a/package.json b/package.json index 4cecfbf4..cc41e712 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "temp-write": "^4.0.0" }, "devDependencies": { - "aegir": "^21.10.2", + "aegir": "^22.0.0", "benchmark": "^2.1.4", "go-ipfs-dep": "^0.5.0", "husky": "^4.2.5", diff --git a/src/utils.browser.js b/src/utils.browser.js index bdef8d96..d36d82c1 100644 --- a/src/utils.browser.js +++ b/src/utils.browser.js @@ -4,7 +4,6 @@ const { nanoid } = require('nanoid') const deleteDb = (path) => { return new Promise((resolve, reject) => { const keys = self.indexedDB.deleteDatabase(path) - keys.onblocked = () => reject(new Error('Database is still open.')) keys.onerror = (err) => reject(err) keys.onsuccess = () => resolve() }) diff --git a/test/browser.utils.js b/test/browser.utils.js index 1d0329a8..a6013685 100644 --- a/test/browser.utils.js +++ b/test/browser.utils.js @@ -40,6 +40,28 @@ describe('utils browser version', function () { expect(await repoExists('ipfs_test_remove/datastore')).to.be.false() }) + it('removeRepo should wait for db to be closed', async () => { + const ctl = await createController({ + test: true, + type: 'proc', + disposable: false, + ipfsOptions: { repo: 'ipfs_test_remove' }, + ipfsModule: require('ipfs') + }) + await ctl.init() + await ctl.start() + + await Promise.all([ + removeRepo('ipfs_test_remove'), + ctl.stop() + ]) + + expect(await repoExists('ipfs_test_remove')).to.be.false() + expect(await repoExists('ipfs_test_remove/keys')).to.be.false() + expect(await repoExists('ipfs_test_remove/blocks')).to.be.false() + expect(await repoExists('ipfs_test_remove/datastore')).to.be.false() + }) + describe('repoExists', () => { it('should resolve true when repo exists', async () => { const f = createFactory({ test: true })