npm install --save-dev rescript-hooks-testing-library
Then add rescript-hooks-testing-library
to bs-dev-dependencies
in your bsconfig.json
:
{
"bs-dev-dependencies": ["@glennsl/bs-jest", "rescript-hooks-testing-library"]
}
open Jest
open Expect
open RescriptHooksTestingLibrary.Testing
type counterType = {
counter: int,
set: (int => int) => unit,
}
let useCounter = initial => {
let (counter, set) = React.useState(() => initial)
{counter: counter, set: 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)
})
})