Merge "Record and expose cache definitions"
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.ts b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.ts
index 95d552b..0e77bbb 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.ts
+++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.ts
@@ -1572,6 +1572,7 @@
// on how much the change view was scrolled.
// Hence, reset the scroll position here.
document.documentElement.scrollTop = 0;
+ this.initCursor();
this.reInitCursor();
this.diffHost?.initLayers();
this.classList.remove('hideComments');
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.ts b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.ts
index f26faae..7aaf3bb 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.ts
+++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.ts
@@ -982,6 +982,31 @@
assert.isFalse(reloadStub.called);
});
+ test('initializePositions re-initializes cursor with focusLineNum', async () => {
+ element.focusLineNum = 10;
+ element.leftSide = false;
+ element.path = 'glados.txt';
+ element.patchNum = 1 as RevisionPatchSetNum;
+ element.basePatchNum = PARENT;
+ await element.updateComplete;
+
+ assertIsDefined(element.cursor);
+ assert.equal(element.cursor.initialLineNumber, 10);
+
+ // Simulate render consuming initialLineNumber
+ element.cursor.reInitCursor();
+ assert.isNull(element.cursor.initialLineNumber);
+
+ const moveToLineNumberSpy = sinon.spy(element.cursor, 'moveToLineNumber');
+
+ // Simulate view becoming active
+ element.isActiveChildView = true;
+ element.initializePositions();
+
+ // Should have re-initialized with proper line number
+ assert.isTrue(moveToLineNumberSpy.calledWith(10, Side.RIGHT));
+ });
+
test('edit should redirect to edit page', async () => {
element.loggedIn = true;
element.path = 't.txt';