Skip to content

beizhedenglong/reason-hooks-testing-library

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

reason-hooks-testing-library

Reason bindings for react-hooks-testing-library.

Installation

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"]
}

Example

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);
  });
});

More examples