TGViewer
Заметки про React Заметки про React @ru_react_notes · 3.44K subscribers
Post #450 3.11K
Создание бесконечного скролла и E2E тест к нему

Бесконечный скролл позволяет загружать данные на страницу поэтапно, в процессе скролла пользователя. В блоге Wanago автор описал как работает бесконечный скролл с Intersection Observer для постраничной загрузки данных.

Для тестирования функционала используется библиотека Playwright. Узнать количество загруженных записей можно с помощью функции toHaveCount, а проскроллить до элемента-якоря можно с помощью scrollIntoViewIfNeeded:


import { expect, test } from '@playwright/test';

test.describe('The Posts page', () => {
test.describe('when visited', () => {
test.beforeEach(async ({ page }) => {
await page.goto('/');
});
// ...
test.describe('and when the user scrolls down', () => {
test('should contain forty posts', async ({ page }) => {
const posts = page.getByTestId('post');

await expect(posts).toHaveCount(20);

await page.getByTestId('loader').scrollIntoViewIfNeeded();

await expect(posts).toHaveCount(40);
});
});
});
});


https://wanago.io/2024/04/29/react-infinite-scrolling-e2e-playwright/
Marcin Wanago Blog - JavaScript, both frontend and backend Implementing infinite scrolling with React. Writing E2E tests with Playwright We implement infinite scrolling using React and the Intersection Observer. We also write End-to-End (E2E) test with Playwright.
  • 👍 13
  • 🔥 7
More from @ru_react_notes
  1. Jun 24, 2025Реактивность – это легко Стандартный useContext заставляет обновляться все компоненты-потр…
  2. Jun 17, 2025Остерегайтесь скрытых проблем при работе с search params Типо-безопасность — это только ве…
  3. Jun 4, 2025Почему Error Boundary, а не просто try/catch для компонентов В React нельзя использовать t…
  4. May 29, 2025Анонс TypeScript Native Вышла превью версия TypeScript написанная на Go. Ее можно установи…
  5. May 27, 2025Управление фокусом в React с помощью flushSync Установить фокус на инпуте сразу в React мо…
  6. May 15, 2025TanStack DB TanStack представила новую библиотеку – TanStack DB – реактивный клиентский ст…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →