cyclejs-test-helpers
Version:
A small collection of useful utilities
32 lines (25 loc) • 948 B
text/typescript
import xs from 'xstream';
import { mockTimeSource, MockTimeSource } from '@cycle/time';
export { diagramArbitrary } from './diagramArbitrary';
export { undefinedOr } from './undefinedOr';
export function promise(run : (err: any) => void) : Promise<boolean>
{
return new Promise((resolve, reject) => run(err => err ? reject(err) : resolve(true)));
}
export function withTime(test : (Time : MockTimeSource) => void): () => Promise<boolean> {
return function() {
const Time = mockTimeSource();
test(Time);
return promise(Time.run);
}
}
export function addPrevState(main : any, prevState : any, stateName: string = 'state'): any {
return function(sources : any) : any {
const initReducer = xs.of(() => prevState);
const appSinks = main(sources);
return {
...appSinks,
[stateName]: xs.merge(initReducer, appSinks[stateName] || xs.never())
};
};
}