Scaffold: Fix test creation

Fixes #3167
This commit is contained in:
Abe Jellinek 2023-06-15 16:18:57 -07:00
parent 4273448b5d
commit c124ca9738

View file

@ -999,10 +999,14 @@ var Scaffold = new function () {
var translator = _getTranslatorFromPane();
if (functionToRun.startsWith('detect')) {
if (isRemoteWeb) {
try {
translate.setTranslator(translator);
detectHandler(translate, await translate.detect());
}
finally {
translate.dispose();
}
}
else {
// don't let target prevent translator from operating
translator.target = null;
@ -1016,6 +1020,7 @@ var Scaffold = new function () {
}
}
else if (isRemoteWeb) {
try {
translate.setHandler("select", selectItems);
translate.setTranslator(translator);
let items = await translate.translate({ libraryID: false });
@ -1024,8 +1029,11 @@ var Scaffold = new function () {
itemDone(translate, item);
}
}
}
finally {
translate.dispose();
}
}
else {
// don't let the detectCode prevent the translator from operating
translator.detectCode = null;
@ -1660,24 +1668,24 @@ var Scaffold = new function () {
let input = await _getInput(type);
if (type == "web") {
let tester = new Zotero_TranslatorTester(
_getTranslatorFromPane(),
type,
_debug,
_translatorProvider
);
return new Promise(
(resolve, reject) => tester.newTest(input,
(obj, newTest) => { // "done" handler for do
if (newTest) {
resolve(_sanitizeItemsInTest(newTest));
let translate = new RemoteTranslate();
try {
await translate.setBrowser(_browser);
await translate.setTranslatorProvider(_translatorProvider);
translate.setTranslator(_getTranslatorFromPane());
translate.setHandler("debug", _debug);
translate.setHandler("error", _error);
translate.setHandler("newTestDetectionFailed", _confirmCreateExpectedFailTest);
let newTest = await translate.newTest();
if (!newTest) {
throw new Error('Creation failed');
}
else {
reject(new Error('Creation failed'));
newTest = _sanitizeItemsInTest(newTest);
return newTest;
}
finally {
translate.dispose();
}
},
_confirmCreateExpectedFailTest)
);
}
else if (type == "import" || type == "search") {
let test = { type, input: input, items: [] };
@ -2032,6 +2040,7 @@ var Scaffold = new function () {
}
let translate = new RemoteTranslate();
try {
await translate.setBrowser(browser);
await translate.setTranslatorProvider(_translatorProvider);
translate.setTranslator(_getTranslatorFromPane());
@ -2039,12 +2048,15 @@ var Scaffold = new function () {
translate.setHandler("error", _error);
translate.setHandler("newTestDetectionFailed", _confirmCreateExpectedFailTest);
let newTest = await translate.newTest();
translate.dispose();
newTest = _sanitizeItemsInTest(newTest);
this.newTests.push(newTest);
this.testDoneCallback(newTest);
this._updateTests();
}
finally {
translate.dispose();
}
}
catch (e) {
Zotero.logError(e);
this.newTests.push(false);