Very very experimental (yep, that's one less "very" than before!) and WIP
Status
- Global: Fully implemented and tested, apart from
require.*
- Expect: Mostly implemented. Functionality that makes sense only for JS interop have been moved to
ExpectJS
. Some functionality does not make sense in a typed language, or is not possible to implement sensibly in ML. - Mock Functions: Experimental and unsafe implementation, very much in flux. The Jest bindings will most likely be relegated to the
MockJs
module as it's very quirky to use with native code. A separate native from-scratch implementation might suddenly appear as Mock
. - The Jest Object: Fake timers are fully implemented and tested. Mock functionality has been moved to
JestJs
. It's mostly implemented, but experimental and largely untested. - [Snapshotting] Completely untested. Expect functions exist, but there's currently no way to implement custom snapshot serializers.
Usage
See the tests for examples. Put tests in a __tests__
directory and use the suffix *test.ml
/*test.re
. When compiled they will be put in a __tests__
directory under lib
, with a *test.js
suffix, ready to be picked up when you run jest
. If you're not already familiar with Jest, see the Jest documentation.
Contribute
git clone https://github.com/BuckleTypes/bs-jest.git
cs bs-jest
npm install
Then build and run tests with npm test
, start watchers for bsb
and jest
with npm run watch:bsb
and npm run watch:jest
respectively. Install screen
to be able to use npm run watch:screen
to run both watchers in a single terminal window.