mirror of
https://github.com/element-hq/element-web
synced 2024-11-22 01:05:42 +03:00
Revert "remove test for #528 as we removed that fix"
This reverts commit 42030796c7
.
This commit is contained in:
parent
37593c117a
commit
65807c7a66
1 changed files with 53 additions and 0 deletions
|
@ -224,4 +224,57 @@ describe('ScrollPanel', function() {
|
|||
expect(scrollingDiv.scrollTop).toEqual(1950);
|
||||
});
|
||||
});
|
||||
|
||||
it('should not get stuck in #528 workaround', function(done) {
|
||||
let events = [];
|
||||
Promise.resolve().then(() => {
|
||||
// initialise with a bunch of events
|
||||
for (let i = 0; i < 40; i++) {
|
||||
events.push(i);
|
||||
}
|
||||
tester.setTileKeys(events);
|
||||
expect(tester.fillCounts.b).toEqual(1);
|
||||
expect(tester.fillCounts.f).toEqual(2);
|
||||
expect(scrollingDiv.scrollHeight).toEqual(6050); // 40*150 + 50
|
||||
expect(scrollingDiv.scrollTop).toEqual(6050 - 600);
|
||||
|
||||
// try to scroll up, to a non-integer offset.
|
||||
tester.scrollPanel().scrollToToken("30", -101/3);
|
||||
|
||||
expect(scrollingDiv.scrollTop).toEqual(4616); // 31*150 - 34
|
||||
|
||||
// wait for the scroll event to land
|
||||
return tester.awaitScroll(); // fails
|
||||
}).then(() => {
|
||||
expect(tester.lastScrollEvent).toEqual(4616);
|
||||
|
||||
// Now one more event; this will make it reset the scroll, but
|
||||
// because the delta will be less than 1, will not trigger a
|
||||
// scroll event, this leaving recentEventScroll defined.
|
||||
console.log("Adding event 50");
|
||||
events.push(50);
|
||||
tester.setTileKeys(events);
|
||||
|
||||
// wait for the scrollpanel to stop trying to paginate
|
||||
}).then(() => {
|
||||
// Now, simulate hitting "scroll to bottom".
|
||||
events = [];
|
||||
for (let i = 100; i < 120; i++) {
|
||||
events.push(i);
|
||||
}
|
||||
tester.setTileKeys(events);
|
||||
tester.scrollPanel().scrollToBottom();
|
||||
|
||||
// wait for the scroll event to land
|
||||
return tester.awaitScroll(); // fails
|
||||
}).then(() => {
|
||||
expect(scrollingDiv.scrollTop).toEqual(20*150 + 50 - 600);
|
||||
|
||||
// simulate a user-initiated scroll on the div
|
||||
scrollingDiv.scrollTop = 1200;
|
||||
return tester.awaitScroll();
|
||||
}).then(() => {
|
||||
expect(scrollingDiv.scrollTop).toEqual(1200);
|
||||
}).done(done);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue