Stream the media grid with a scroll buffer
This commit is contained in:
@@ -84,6 +84,33 @@ try {
|
||||
);
|
||||
step("broken images", broken);
|
||||
check("no broken images", broken === 0, broken);
|
||||
check("stream buffer present", (await page.locator(".vk-media-buffer").count()) === 1);
|
||||
check("no load-more button", (await page.locator(".vk-media-load-more").count()) === 0);
|
||||
|
||||
// Infinite scroll: scrolling into the buffer appends cards without rebuilding the grid.
|
||||
const beforeScroll = await page.locator(".vk-media-figure").count();
|
||||
for (let attempt = 0; attempt < 3; attempt++) {
|
||||
await page.locator("#media-grid").evaluate(node => {
|
||||
node.scrollTop = node.scrollHeight;
|
||||
});
|
||||
await page.waitForTimeout(1200);
|
||||
}
|
||||
const afterScroll = await page.locator(".vk-media-figure").count();
|
||||
step("infinite scroll", { before: beforeScroll, after: afterScroll });
|
||||
check("infinite scroll appends cards", afterScroll > beforeScroll, {
|
||||
before: beforeScroll,
|
||||
after: afterScroll
|
||||
});
|
||||
check(
|
||||
"appended cards do not corrupt loaded ones",
|
||||
(await page.$$eval(".vk-media-figure .vk-media-media img", images =>
|
||||
images.filter(image => image.complete && image.naturalWidth === 0).length
|
||||
)) === 0
|
||||
);
|
||||
await page.locator("#media-grid").evaluate(node => {
|
||||
node.scrollTop = 0;
|
||||
});
|
||||
await page.waitForTimeout(300);
|
||||
|
||||
await page.getByRole("button", { name: /^People/ }).click();
|
||||
step("people checkboxes", await page.locator(".vk-media-people input").count());
|
||||
|
||||
Reference in New Issue
Block a user