17. API Testing & Network Mocking with page.route

Direct API Testing

test("validate user API endpoint", async ({ request }) => {
  const response = await request.get("https://api.targetqa.com/users/1");
  expect(response.status()).toBe(200);
  const data = await response.json();
  expect(data.name).toBe("Alice");
});

Network Mocking with page.route

test("simulate 500 server error toast", async ({ page }) => {
  await page.route("**/api/checkout", (route) => {
    route.fulfill({ status: 500, body: JSON.stringify({ error: "Server down" }) });
  });

await page.goto("/checkout");
await page.getByRole("button", { name: "Pay" }).click();
await expect(page.getByRole("alert")).toBeVisible();
});

Task

  • Implement formatMockResponse:
  • 1. Accept status (number) and data (object).
  • 2. Return { status, contentType: "application/json", body: JSON.stringify(data) }.
πŸ’‘Common doubts
Did you like the problem?
Lesson 17 of 18
JavaScript
Loading code editor…
Next