Reason bindings for react-hooks-testing-library
.
npm install --save-dev reason-hooks-testing-library
Then add reason-hooks-testing-library
to bs-dev-dependencies
in your bsconfig.json
:
{
"bs-dev-dependencies": ["@glennsl/bs-jest", "reason-hooks-testing-library"]
}
open Jest;
open Expect;
open ReasonHooksTestingLibrary.Testing;
type counterType = {
counter: int,
set: (int => int) => unit,
};
let useCounter = initial => {
let (counter, set) = React.useState(() => initial);
{counter, set};
};
describe("useCounter", () => {
open Result;
let container = renderHook(() => useCounter(0), ());
test("counter is 0", () =>
expect(container->result->current.counter) |> toEqual(0)
);
test("counter is 1", () => {
act(() => container->result->current.set(prev => prev + 1));
expect(container->result->current.counter) |> toEqual(1);
});
test("counter is 2", () => {
act(() => container->result->current.set(prev => prev + 1));
expect(container->result->current.counter) |> toEqual(2);
});
});