/* ! * (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(); }); });