import { render } from "@testing-library/react";
import { FC } from "react";
import { describe, expect, it, vi } from "vitest";
import { createCameraOperation } from "./CameraOperation";
import { Provider } from "./context";
describe("core/cameraop", () => {
it("should call proper methods", () => {
const camera = {
cancelFlight: vi.fn(),
} as any;
const scene = {
isDestroyed: () => false,
} as any;
const cameraOperationStart = vi.fn();
const DummyCameraOperation = createCameraOperation<{ test: number }>(
"dummy",
cameraOperationStart,
);
const Test: FC<{ test: number }> = ({ test }) => (
);
const { rerender } = render();
expect(cameraOperationStart).toHaveBeenCalledTimes(1);
expect(camera.cancelFlight).toHaveBeenCalledTimes(1);
rerender();
expect(cameraOperationStart).toHaveBeenCalledTimes(2);
expect(camera.cancelFlight).toHaveBeenCalledTimes(2);
});
it("should call cancelFlight", () => {
const camera = {
cancelFlight: vi.fn(),
} as any;
const scene = {
isDestroyed: () => false,
} as any;
const DummyCameraOperation = createCameraOperation("dummy", () => {});
const { unmount } = render(
,
);
expect(camera.cancelFlight).toHaveBeenCalledTimes(1);
unmount();
expect(camera.cancelFlight).toHaveBeenCalledTimes(2);
});
});