Allow overriding startup options in Zotero.reinit()
And use it in resetDB() test support function, mainly to allow skipBundledFiles for resetDB calls. Translator installation and initialization can take a long time, but tests that need a clean DB don't necessarily rely on translators. Without this, running resetDB() in beforeEach() for many tests is prohibitively slow.
This commit is contained in:
parent
9d0d79c9c2
commit
02cd71ebb5
2 changed files with 10 additions and 4 deletions
|
@ -186,13 +186,16 @@ ZoteroContext.prototype = {
|
|||
* then reinitializes Zotero. Returns a promise that is resolved
|
||||
* when this process completes.
|
||||
*/
|
||||
"reinit":function(cb, isConnector) {
|
||||
"reinit":function(cb, isConnector, options = {}) {
|
||||
Services.obs.notifyObservers(zContext.Zotero, "zotero-before-reload", isConnector ? "connector" : "full");
|
||||
return zContext.Zotero.shutdown().then(function() {
|
||||
return cb ? cb() : false;
|
||||
}).finally(function() {
|
||||
makeZoteroContext(isConnector);
|
||||
zContext.Zotero.init(zInitOptions);
|
||||
var o = {};
|
||||
Object.assign(o, zInitOptions);
|
||||
Object.assign(o, options);
|
||||
zContext.Zotero.init(o);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
|
@ -366,13 +366,16 @@ var getTempDirectory = Zotero.Promise.coroutine(function* getTempDirectory() {
|
|||
/**
|
||||
* Resets the Zotero DB and restarts Zotero. Returns a promise resolved
|
||||
* when this finishes.
|
||||
*
|
||||
* @param {Object} [options] - Initialization options, as passed to Zotero.init(), overriding
|
||||
* any that were set at startup
|
||||
*/
|
||||
function resetDB() {
|
||||
function resetDB(options = {}) {
|
||||
var db = Zotero.getZoteroDatabase();
|
||||
return Zotero.reinit(function() {
|
||||
db.remove(false);
|
||||
_defaultGroup = null;
|
||||
}).then(function() {
|
||||
}, false, options).then(function() {
|
||||
return Zotero.Schema.schemaUpdatePromise;
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue