summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Poucet <poucet@google.com>2022-05-11 15:12:53 +0200
committerPaladox none <thomasmulhall410@yahoo.com>2022-05-11 15:45:12 +0000
commit6c97fb0b8b3548967b36a2bab47d674d116d474c (patch)
tree423c7df05ebf2b2b34073f33600d0d4bde3065bc
parent66622fed3b40e9ed2cc27589b50386724eb6c1e4 (diff)
Finish rendering a message before scrolling
Release-Notes: skip Change-Id: Ibdc1c20dfa43904ceb4b760d3ebd9649f6e11d5b (cherry picked from commit 541f5bb80fefa0246738b56345005719f9d7668a)
-rw-r--r--polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts3
-rw-r--r--polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.ts12
2 files changed, 8 insertions, 7 deletions
diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts
index 9f33990b48..c03121dadc 100644
--- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts
+++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts
@@ -306,7 +306,7 @@ export class GrMessagesList extends DIPolymerElement {
super.disconnectedCallback();
}
- scrollToMessage(messageID: string) {
+ async scrollToMessage(messageID: string) {
const selector = `[data-message-id="${messageID}"]`;
const el = this.shadowRoot!.querySelector(selector) as
| GrMessage
@@ -325,6 +325,7 @@ export class GrMessagesList extends DIPolymerElement {
}
el.message = {...el.message, expanded: true};
+ await el.updateComplete;
let top = el.offsetTop;
for (
let offsetParent = el.offsetParent as HTMLElement | null;
diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.ts b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.ts
index 30dd257e5f..b9cb616d29 100644
--- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.ts
@@ -222,7 +222,7 @@ suite('gr-messages-list tests', () => {
assert.isNotOk(query(element, '.showAllActivityToggle'));
});
- test('scroll to message', () => {
+ test('scroll to message', async () => {
const allMessageEls = getMessages();
for (const message of allMessageEls) {
assertIsDefined(message.message);
@@ -232,7 +232,7 @@ suite('gr-messages-list tests', () => {
const scrollToStub = sinon.stub(window, 'scrollTo');
const highlightStub = sinon.stub(element, '_highlightEl');
- element.scrollToMessage('invalid');
+ await element.scrollToMessage('invalid');
for (const message of allMessageEls) {
assertIsDefined(message.message);
@@ -243,7 +243,7 @@ suite('gr-messages-list tests', () => {
}
const messageID = messages[1].id;
- element.scrollToMessage(messageID);
+ await element.scrollToMessage(messageID);
assert.isTrue(
queryAndAssert<GrMessage>(element, `[data-message-id="${messageID}"]`)
.message?.expanded
@@ -253,16 +253,16 @@ suite('gr-messages-list tests', () => {
assert.isTrue(highlightStub.calledOnce);
});
- test('scroll to message offscreen', () => {
+ test('scroll to message offscreen', async () => {
const scrollToStub = sinon.stub(window, 'scrollTo');
const highlightStub = sinon.stub(element, '_highlightEl');
element.messages = generateRandomMessages(25);
- flush();
+ await element.updateComplete;
assert.isFalse(scrollToStub.called);
assert.isFalse(highlightStub.called);
const messageID = element.messages[1].id;
- element.scrollToMessage(messageID);
+ await element.scrollToMessage(messageID);
assert.isTrue(scrollToStub.calledOnce);
assert.isTrue(highlightStub.calledOnce);
assert.isTrue(