diff --git a/src/static/js/scroll.js b/src/static/js/scroll.js index 136eb4f27..82e58cec1 100644 --- a/src/static/js/scroll.js +++ b/src/static/js/scroll.js @@ -434,7 +434,9 @@ Scroll.prototype.getCountOfVisibleCharsInViewport = (line, viewport) => { // each character let i = 0; console.log(node); + if (!node || !node.childNodes) return; node = node.childNodes[0]; + if (!node) return; // temp patch to be removed. if (node.childNodes && node.childNodes[1].length === 0) return; console.log(node); console.log(node.wholeText.length); diff --git a/tests/frontend/specs/pageupdown.js b/tests/frontend/specs/pageupdown.js index 77f74d2fa..e96ab176e 100644 --- a/tests/frontend/specs/pageupdown.js +++ b/tests/frontend/specs/pageupdown.js @@ -11,27 +11,26 @@ describe('Page Up & Page Down', function () { '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' + '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' + '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' + - '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'); + '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nhello'); cb(); }, }); }); - // scrolls up 3 times + // scrolls up 2 times it('scrolls up on key stroke', async function () { - let currentLineNumber = helper.caretLineNumber(); + await helper.edit('Line 80', 80); + await helper.waitForPromise(() => 81 === helper.caretLineNumber()); + // for some reason the page isn't inline with the edit + helper.padOuter$('#outerdocbody').parent().scrollTop(1000); + let intitialLineNumber = helper.caretLineNumber(); helper.pageUp(); - await helper.waitForPromise(() => currentLineNumber > helper.caretLineNumber()); - - currentLineNumber = helper.caretLineNumber(); + await helper.waitForPromise(() => intitialLineNumber > helper.caretLineNumber()); + intitialLineNumber = helper.caretLineNumber(); helper.pageUp(); - await helper.waitForPromise(() => currentLineNumber > helper.caretLineNumber()); - - currentLineNumber = helper.caretLineNumber(); - helper.pageUp(); - await helper.waitForPromise(() => currentLineNumber > helper.caretLineNumber()); + await helper.waitForPromise(() => intitialLineNumber > helper.caretLineNumber()); + await helper.waitForPromise(() => helper.padOuter$('#outerdocbody').parent().scrollTop() < 1000); }); - // scrolls down 3 times it('scrolls down on key stroke', async function () { // this places the caret in the first line