Tests: delete indexeddbs after running

pull/4314/head
Richard van der Hoff 2017-06-14 17:08:49 +01:00
parent 59da904353
commit 5ff59b0c23
2 changed files with 40 additions and 6 deletions

View File

@ -30,7 +30,7 @@ import sdk from 'matrix-react-sdk';
import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg';
import * as languageHandler from 'matrix-react-sdk/lib/languageHandler';
import test_utils from '../test-utils';
import * as test_utils from '../test-utils';
import MockHttpBackend from '../mock-request';
import {parseQs, parseQsFromFragment} from '../../src/vector/url_utils';
@ -68,12 +68,19 @@ describe('loading:', function () {
});
});
afterEach(function() {
afterEach(async function() {
if (parentDiv) {
ReactDOM.unmountComponentAtNode(parentDiv);
parentDiv.remove();
parentDiv = null;
}
// unmounting should have cleared the MatrixClientPeg
expect(MatrixClientPeg.get()).toBe(null);
// clear the indexeddbs so we can start from a clean slate next time.
await test_utils.deleteIndexedDB('matrix-js-sdk:crypto');
await test_utils.deleteIndexedDB('matrix-js-sdk:riot-web-sync');
});
/* simulate the load process done by index.js

View File

@ -7,7 +7,7 @@ var q = require('q');
* name to stdout.
* @param {Mocha.Context} context The test context
*/
module.exports.beforeEach = function(context) {
export function beforeEach(context) {
var desc = context.currentTest.fullTitle();
console.log();
console.log(desc);
@ -16,13 +16,40 @@ module.exports.beforeEach = function(context) {
// some tests store things in localstorage. Improve independence of tests
// by making sure that they don't inherit any old state.
window.localStorage.clear();
};
}
/**
* returns true if the current environment supports webrtc
*/
module.exports.browserSupportsWebRTC = function() {
export function browserSupportsWebRTC() {
var n = global.window.navigator;
return n.getUserMedia || n.webkitGetUserMedia ||
n.mozGetUserMedia;
};
}
export function deleteIndexedDB(dbName) {
return new q.Promise((resolve, reject) => {
if (!window.indexedDB) {
resolve();
return;
}
console.log(`Removing indexeddb instance: ${dbName}`);
const req = window.indexedDB.deleteDatabase(dbName);
req.onblocked = () => {
console.log(`can't yet delete indexeddb because it is open elsewhere`);
};
req.onerror = (ev) => {
reject(new Error(
"unable to delete indexeddb: " + ev.target.error,
));
};
req.onsuccess = () => {
console.log(`Removed indexeddb instance: ${dbName}`);
resolve();
};
});
}