← Back to library
Playwrightnetworkintermediatev1.20+

Simulate slow network response

Add artificial latency to an API route to test loading states and spinners.

1test('shows loading spinner during slow API', async ({ page }) => {
2  await page.route('**/api/reports', async (route) => {
3    // Pause 2 seconds before responding
4    await new Promise((resolve) => setTimeout(resolve, 2000));
5    await route.fulfill({ status: 200, body: JSON.stringify({ rows: [] }) });
6  });
7
8  await page.goto('/reports');
9
10  // Spinner visible while waiting for the delayed response
11  await expect(page.getByTestId('loading-spinner')).toBeVisible();
12  await expect(page.getByTestId('loading-spinner')).toBeHidden();
13});
#delay#slow network#loading#intercept