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
|
@ -186,13 +186,16 @@ ZoteroContext.prototype = {
|
||||||
* then reinitializes Zotero. Returns a promise that is resolved
|
* then reinitializes Zotero. Returns a promise that is resolved
|
||||||
* when this process completes.
|
* when this process completes.
|
||||||
*/
|
*/
|
||||||
"reinit":function(cb, isConnector) {
|
"reinit":function(cb, isConnector, options = {}) {
|
||||||
Services.obs.notifyObservers(zContext.Zotero, "zotero-before-reload", isConnector ? "connector" : "full");
|
Services.obs.notifyObservers(zContext.Zotero, "zotero-before-reload", isConnector ? "connector" : "full");
|
||||||
return zContext.Zotero.shutdown().then(function() {
|
return zContext.Zotero.shutdown().then(function() {
|
||||||
return cb ? cb() : false;
|
return cb ? cb() : false;
|
||||||
}).finally(function() {
|
}).finally(function() {
|
||||||
makeZoteroContext(isConnector);
|
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
|
* Resets the Zotero DB and restarts Zotero. Returns a promise resolved
|
||||||
* when this finishes.
|
* 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();
|
var db = Zotero.getZoteroDatabase();
|
||||||
return Zotero.reinit(function() {
|
return Zotero.reinit(function() {
|
||||||
db.remove(false);
|
db.remove(false);
|
||||||
_defaultGroup = null;
|
_defaultGroup = null;
|
||||||
}).then(function() {
|
}, false, options).then(function() {
|
||||||
return Zotero.Schema.schemaUpdatePromise;
|
return Zotero.Schema.schemaUpdatePromise;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user