All Projects β†’ beizhedenglong β†’ reason-hooks-testing-library

beizhedenglong / reason-hooks-testing-library

Licence: MIT license
ReasonML bindings for react-hooks-testing-library

Programming Languages

reason
219 projects

Projects that are alternatives of or similar to reason-hooks-testing-library

Reason-react-hooks
🧢 Some hooks in ReasonML for reason-react that can be useful
Stars: ✭ 14 (-41.67%)
Mutual labels:  reasonml, reason-react, react-hooks
re-use
βš›οΈ 🎣 A collection of hooks for ReasonReact
Stars: ✭ 27 (+12.5%)
Mutual labels:  reasonml, reason-react, react-hooks
bs-rsuite-ui-react
Reason bindings for React Suite UI library
Stars: ✭ 26 (+8.33%)
Mutual labels:  reasonml, reason-react, reasonml-bindings
Rescript Recoil
Zero-cost bindings to Facebook's Recoil library
Stars: ✭ 115 (+379.17%)
Mutual labels:  reasonml, reason-react
Timerlab
⏰ A simple and customizable timer
Stars: ✭ 84 (+250%)
Mutual labels:  reasonml, reason-react
Verified React
Automated reasoning for React/ReasonML
Stars: ✭ 104 (+333.33%)
Mutual labels:  reasonml, reason-react
Pragma
Pragma is a self-hosted, open-source, personal note taking app.
Stars: ✭ 39 (+62.5%)
Mutual labels:  reasonml, reason-react
Pure
React in pure Reason that targets native platforms.
Stars: ✭ 135 (+462.5%)
Mutual labels:  reasonml, reason-react
Reroute
a fast, declarative microrouter for reason-react
Stars: ✭ 120 (+400%)
Mutual labels:  reasonml, reason-react
Fullstack Reason
A demo project that shows a fullstack ReasonML/OCaml app–native binary + webapp
Stars: ✭ 164 (+583.33%)
Mutual labels:  reasonml, reason-react
Reason Graphql Fullstack
Fullstack Reason + GraphQL Todo List App
Stars: ✭ 246 (+925%)
Mutual labels:  reasonml, reason-react
Introduce Reason Example
An example app made with Create React App which introduces a Reason component
Stars: ✭ 82 (+241.67%)
Mutual labels:  reasonml, reason-react
Rescript React Update
useReducer with updates and side effects!
Stars: ✭ 79 (+229.17%)
Mutual labels:  reasonml, reason-react
Reason Calculator
A calculator built with Reason and reason-react.
Stars: ✭ 110 (+358.33%)
Mutual labels:  reasonml, reason-react
Recontainers
[DEPRECATED] ReasonReact utilitary high order components
Stars: ✭ 54 (+125%)
Mutual labels:  reasonml, reason-react
Brisk Reconciler
React.js-like reconciler implemented in OCaml/Reason
Stars: ✭ 124 (+416.67%)
Mutual labels:  reasonml, reason-react
Rescript Relay
Use Relay with ReasonML.
Stars: ✭ 214 (+791.67%)
Mutual labels:  reasonml, reason-react
app-template-rescript-react
Adding ReScript with rescript-react on top of @snowpack/app-template-react
Stars: ✭ 44 (+83.33%)
Mutual labels:  reasonml, reason-react
Rescript React Native
ReScript bindings for React Native
Stars: ✭ 802 (+3241.67%)
Mutual labels:  reasonml, reason-react
Cra Template Rescript Lukin
πŸͺ Lukin CRA and ReScript Template
Stars: ✭ 18 (-25%)
Mutual labels:  reasonml, reason-react

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].