Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bloodyowl/reason-test-framework
A test framework for Reason compiled to JS with BuckleScript
https://github.com/bloodyowl/reason-test-framework
bucklescript reasonml testing unit-testing
Last synced: 2 months ago
JSON representation
A test framework for Reason compiled to JS with BuckleScript
- Host: GitHub
- URL: https://github.com/bloodyowl/reason-test-framework
- Owner: bloodyowl
- License: mit
- Archived: true
- Created: 2020-05-07T21:17:31.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-04-26T13:17:37.000Z (over 3 years ago)
- Last Synced: 2024-11-10T01:58:30.616Z (2 months ago)
- Topics: bucklescript, reasonml, testing, unit-testing
- Language: Reason
- Size: 218 KB
- Stars: 43
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: HISTORY.md
- License: MIT-LICENSE
Awesome Lists containing this project
- awesome-list - reason-test-framework
README
# ~~Reason Test Framework~~
**Archived**: prefer https://github.com/bloodyowl/rescript-test
![Node.js CI](https://github.com/bloodyowl/reason-test-framework/workflows/Node.js%20CI/badge.svg?branch=master)
> 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](https://jestjs.io) can consume.
## Installation
Run the following in your console:
```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`:
```diff
{
"bs-dependencies": [
+ "reason-test-framework"
]
}
```## Usage
```reason
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](https://reason-native.com/docs/rely/), were originally shared from the [Reason Native](https://github.com/facebookexperimental/reason-native) repo by [Ben Anderson](https://github.com/bandersongit) 🙏