commit c43823ad6077b4885470ccab06d10eb220bec404
parent 7609ef35bc586c645ca6d4efbe753c7d5541ad24
Author: Dan Stillman <dstillman@zotero.org>
Date: Sat, 1 Apr 2017 14:29:45 -0400
Maybe fix noteeditor test failures for real
Diffstat:
1 file changed, 19 insertions(+), 11 deletions(-)
diff --git a/test/tests/noteeditorTest.js b/test/tests/noteeditorTest.js
@@ -8,20 +8,27 @@ describe("Note Editor", function () {
zp = win.ZoteroPane;
});
- beforeEach(function* () {
- // Avoid "this._editor is undefined" error and incorrect note selection between tests,
- // though there's definitely a better way to fix this
- yield Zotero.Promise.delay(150);
- });
-
after(function () {
win.close();
});
+ var waitForNoteEditor = Zotero.Promise.coroutine(function* (item) {
+ var noteEditor = win.document.getElementById('zotero-note-editor');
+ while (noteEditor.item != item) {
+ Zotero.debug("Waiting for note editor");
+ yield Zotero.Promise.delay(50);
+ noteEditor = win.document.getElementById('zotero-note-editor');
+ }
+ return new Zotero.Promise((resolve, reject) => {
+ noteEditor.noteField.onInit(() => resolve(noteEditor));
+ });
+ });
+
+
describe("Tags box", function () {
it("should open new row for editing if no tags", function* () {
- var note = yield createDataObject('item', { itemType: 'note' });
- var noteEditor = win.document.getElementById('zotero-note-editor');
+ var note = yield createDataObject('item', { itemType: 'note', note: "A" });
+ var noteEditor = yield waitForNoteEditor(note);
var linksBox = noteEditor._id('links-box');
linksBox.tagsClick();
var tagsBox = linksBox.id('tagsPopup').firstChild;
@@ -32,8 +39,8 @@ describe("Note Editor", function () {
});
it("should only open one new row for editing", function* () {
- var note = yield createDataObject('item', { itemType: 'note' });
- var noteEditor = win.document.getElementById('zotero-note-editor');
+ var note = yield createDataObject('item', { itemType: 'note', note: "B" });
+ var noteEditor = yield waitForNoteEditor(note);
var linksBox = noteEditor._id('links-box');
linksBox.tagsClick();
// Close and reopen
@@ -50,13 +57,14 @@ describe("Note Editor", function () {
it("should show tags in alphabetical order", function* () {
var note = new Zotero.Item('note');
+ note.setNote('C');
note.addTag('B');
yield note.saveTx();
note.addTag('A');
note.addTag('C');
yield note.saveTx();
- var noteEditor = win.document.getElementById('zotero-note-editor');
+ var noteEditor = yield waitForNoteEditor(note);
var linksBox = noteEditor._id('links-box');
assert.equal(linksBox.id('tags').summary, "A, B, C");
});