Skip to content
This repository has been archived by the owner on Apr 26, 2021. It is now read-only.

A test framework for Reason compiled to JS with BuckleScript

License

Notifications You must be signed in to change notification settings

bloodyowl/reason-test-framework

Repository files navigation

Reason Test Framework

Archived: prefer https://github.com/bloodyowl/rescript-test

Node.js CI

A test framework for Reason compiled to JS with BuckleScript

Reason Test Framework aims to give a simple API for your tests, making them readable. It produces code that Jest can consume.

Installation

Run the following in your console:

$ yarn add --dev reason-test-framework
$ yarn add --dev jest # if you don't have it already

Then add reason-test-framework to your bsconfig.json's bs-dependencies:

 {
   "bs-dependencies": [
+    "reason-test-framework"
   ]
 }

Usage

open TestFramework;

describe("TestFramework", ({test}) => {
  test("runs simple tests", ({expect}) => {
    expect.int(1 + 1).toBe(2);
    expect.int(1 + 1 + 1).toBe(3);
    expect.bool(true).toBe(true);
    expect.float(1.0).toBeCloseTo(1.0);
    expect.string("hello").not.toEqual("goodbye");
    expect.string("").toBeEmpty();
    expect.arrayOf(Int, [|1, 2, 3|]).toEqual([|1, 2, 3|]);
    expect.listOf(String, ["a", "b"]).toEqual(["a", "b"]);
    expect.value(Ok(1)).toEqual(Ok(1));
  });

  test("produces snapshots", ({expect}) => {
    expect.string("hello").toMatchSnapshot();
    expect.value({"id": 1}).toMatchSnapshot();
  });
});

ES Modules

If you use the es6 or es6-global configurations in BuckleScript, you'll need to install babel-jest for your tests to run.

Aknowledgments

These bindings, which look like Rely, were originally shared from the Reason Native repo by Ben Anderson 🙏

About

A test framework for Reason compiled to JS with BuckleScript

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages