/* !
* (c) Copyright 2025 Palantir Technologies Inc. All rights reserved.
*/
import { render } from "@testing-library/react";
import { beforeEach, describe, expect, it, vi } from "@blueprintjs/test-commons/vitest";
import { useValidateProps } from "./useValidateProps";
describe("useValidateProps", () => {
const validatorSpy = vi.fn();
beforeEach(() => {
validatorSpy.mockClear();
});
const TestComponent: React.FC<{ value?: number }> = ({ value }) => {
useValidateProps(validatorSpy, [value]);
return null;
};
it("calls validator in development environment", () => {
render();
expect(validatorSpy).toHaveBeenCalled();
});
it.skip("does not call validator in production environment", () => {
// TODO: figure out how to test this
});
it("calls validator when dependencies change", () => {
const { rerender } = render();
expect(validatorSpy).toHaveBeenCalledOnce();
rerender();
expect(validatorSpy).toHaveBeenCalledTimes(2);
});
it("does not call validator when dependencies haven't changed", () => {
const { rerender } = render();
rerender();
expect(validatorSpy).toHaveBeenCalledOnce();
});
});