import React from "react";
import { render } from "@testing-library/react";
import "@testing-library/jest-dom";
import { PDFViewerProps } from "../PDFViewerProps";
import PDFViewer from "../PDFViewer";

describe("PDFViewer Component", () => {
  const props: PDFViewerProps = {
    arrayBuffer: new ArrayBuffer(8),
    data: "base64string",
    defaultZoom: 1,
    maxZoom: 3,
    minZoom: 0.5,
    onDownload: jest.fn(),
    onError: jest.fn(),
    onLoad: jest.fn(),
    onPageChange: jest.fn(),
    onRenderContent: jest.fn(),
    onRenderLoader: jest.fn(),
    onRenderToolbar: jest.fn(),
    onZoom: jest.fn(),
    saveFileName: "example.pdf",
    saveOptions: { proxyURL: "http://example.com" },
    style: { border: "1px solid black" },
    tools: [
      "pager",
      "zoomInOut",
      "zoom",
      "selection",
      "search",
      "open",
      "download",
      "print",
    ],
    typedArray: new Uint8Array(8),
    url: "http://example.com/example.pdf",
    zoom: 1,
    zoomLevels: [],
    zoomRate: 0.1,
  };

  it("renders all props correctly", () => {
    render(<PDFViewer {...props} />);
  });

  it("matches the snapshot", () => {
    const { asFragment } = render(<PDFViewer {...props} />);
    expect(asFragment()).toMatchSnapshot();
  });
});
