import { render } from "@testing-library/react";
import { ClientMonitoring } from "../../components/ClientMonitoring";
import { __getWebVitalsCallback } from "../mocks/nextWebVitals";
import { vi } from "vitest";

describe("ClientMonitoring", () => {
  it("sends web vitals payload in production", () => {
    const originalEnv = process.env.NODE_ENV;
    process.env.NODE_ENV = "production";

    const sendBeacon = vi.fn();
    Object.defineProperty(navigator, "sendBeacon", {
      value: sendBeacon,
      configurable: true,
    });

    render(<ClientMonitoring />);

    const cb = __getWebVitalsCallback();
    expect(cb).toBeTruthy();

    cb?.({ id: "1", name: "CLS", value: 0.01, label: "web-vital" });

    expect(sendBeacon).toHaveBeenCalled();

    process.env.NODE_ENV = originalEnv;
  });
});
