From 6d1662a4daed2fbbb953ce42d14f57c5fd6fc424 Mon Sep 17 00:00:00 2001 From: John McLear Date: Tue, 29 Dec 2020 22:58:16 +0000 Subject: [PATCH] introducing more tests --- tests/frontend/specs/pageupdown.js | 64 +++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/tests/frontend/specs/pageupdown.js b/tests/frontend/specs/pageupdown.js index 7a58c2201..9a4218276 100644 --- a/tests/frontend/specs/pageupdown.js +++ b/tests/frontend/specs/pageupdown.js @@ -1,5 +1,5 @@ 'use strict'; - +/* describe('Page Up/Down', function () { beforeEach(function (cb) { helper.newPad({ @@ -50,3 +50,65 @@ describe('Page Up/Down', function () { await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber()); }) }) +*/ + +describe('Page Up/Down Beginning and End position', function () { + beforeEach(function (cb) { + helper.newPad({ + cb: async () => { + await helper.clearPad(); + // 200 lines + await helper.edit( + '\n\n\n\nhello'); + cb(); + }, + }); + }); + + it('scrolls to very end content on page down when viewport is at bottom of document', async function () { + // this places the caret in the first line + await helper.edit('Line 1', 1); + + const currentLineNumber = helper.caretLineNumber(); + helper.pageDown(); + await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber()); + + // make sure caret is after hello + const pos = helper.padInner$.document.getSelection(); + await helper.waitForPromise(() => pos.anchorOffset > 0); + }); + + // scrolls down 3 times - caret should be AFTER "hello + it('scrolls to very beginning content on page up when viewport is at bottom of document', async function () { + // this places the caret in the first line + await helper.edit('Line 1', 1); + + const currentLineNumber = helper.caretLineNumber(); + helper.pageUp(); + await helper.waitForPromise(() => currentLineNumber > helper.caretLineNumber()); + + // make sure caret is after hello + const pos = helper.padInner$.document.getSelection(); + await helper.waitForPromise(() => pos.anchorOffset === 0); + }); + +/* + // scrolls down 3 times + it('scrolls down on key stroke', async function () { + // this places the caret in the first line + await helper.edit('Line 1', 1); + + let currentLineNumber = helper.caretLineNumber(); + helper.pageDown(); + await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber()); + + currentLineNumber = helper.caretLineNumber(); + helper.pageDown(); + await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber()); + + currentLineNumber = helper.caretLineNumber(); + helper.pageDown(); + await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber()); + }); + */ +});