README
- React Most Spec
Test utils for [[https://github.com/reactive-react/react-most][react-most]]
** install
+BEGIN_SRC sh
npm install --save-dev react-most-spec
or
yarn add --dev react-most-spec
+END_SRC
** Usage
*** sync mode async behavior is hardly predictable and not easy to reason, so if we can change it to sync behavior, it would be easier to write test.
To achieve that, we can simply replace most engine with a fake sync one.
+BEGIN_SRC js
import {stateStreamOf, stateHistoryOf,
intentStreamOf, intentHistoryOf,
run, dispatch,
Engine } from 'react-most-spec';
let counterWrapper = TestUtils.renderIntoDocument(
+END_SRC
*** async mode if you want to test with real engine, simply not parse the fake =Engine= from =react-most-spec=
+BEGIN_SRC js
spyOn(console, 'error')
let counterWrapper = TestUtils.renderIntoDocument(
+END_SRC
=run= will return a promise, so simply return it and jasmine will wait for the promise resolved.
the 3 parameters are source stream:Stream, async actions:Promise, expects: Array[Function]
=Function= in =expects= should be in the same order of the value in source stream