Skip to article
Documentation

e2e/hydration.spec.ts

Linked repository file from this build.

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

test("inbox and review reload without hydration errors", async ({ page }) => {
  const errors: string[] = [];
  page.on("console", (message) => {
    if (
      /hydration|hydrated|server rendered HTML|Minified React error #(?:418|423|425)/i.test(
        message.text(),
      )
    )
      errors.push(message.text());
  });
  page.on("pageerror", (error) => errors.push(error.message));
  for (const route of ["/dashboard", "/reviews/aa1635c0-c99d-5f12-8f26-54d3f23bf13d"]) {
    await page.goto(route);
    await expect(page.getByRole("textbox", { name: "Search reviews", exact: true })).toBeVisible();
    await page.reload();
    await expect(page.getByRole("textbox", { name: "Search reviews", exact: true })).toBeVisible();
    if (route.includes("60001")) await expect(page.locator("#client-name")).toBeVisible();
  }
  expect(errors).toEqual([]);
});