diff --git a/src/sql/base/test/browser/ui/scrollableView/scrollableView.test.ts b/src/sql/base/test/browser/ui/scrollableView/scrollableView.test.ts index ea9e6e2c54..a5426e7d8a 100644 --- a/src/sql/base/test/browser/ui/scrollableView/scrollableView.test.ts +++ b/src/sql/base/test/browser/ui/scrollableView/scrollableView.test.ts @@ -8,6 +8,7 @@ import { Emitter } from 'vs/base/common/event'; import * as assert from 'assert'; import { Disposable } from 'vs/base/common/lifecycle'; import { timeout } from 'vs/base/common/async'; +import { scheduleAtNextAnimationFrame } from 'vs/base/browser/dom'; class TestView extends Disposable implements IView { @@ -180,14 +181,18 @@ suite('ScrollableView', () => { scrollableView.setScrollTop(100); await waitForAnimation(); + assert.equal(view2.size, 100, 'view2 is minimum size'); assert.equal(view3.size, 100, 'view3 is minimum size'); assert.equal(getViewChildren(container).length, 2, 'only 2 views are rendered'); }); }); -function waitForAnimation(): Promise { - return timeout(200); +async function waitForAnimation(): Promise { + await timeout(50); + await new Promise(r => scheduleAtNextAnimationFrame(r, -1000)); + await new Promise(r => scheduleAtNextAnimationFrame(r, -1000)); + await timeout(50); } function getViewChildren(container: HTMLElement): NodeListOf {