@motorcycle/test
Version:
Testing functions for Motorcycle.ts
23 lines • 1.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var stream_1 = require("@motorcycle/stream");
var createTestScheduler_1 = require("../createTestScheduler");
var prelude_1 = require("@most/prelude");
/**
* Collects events for a given amount of time.
* @name collectEventsFor<A>(delay: Delay, stream: Stream<A>): Promise<ReadonlyArray<A>>
* @example
* // Mocha style tests
* it('increasing value by one', () => {
* const stream = scan(x => x + 1, skip(1, periodic(10)))
*
* return collectEventsFor(30, stream).then(events => assert.deepEqual(events, [0, 1, 2, 3]))
* })
*/
exports.collectEventsFor = prelude_1.curry2(function collectEventsFor(delay, stream) {
var _a = createTestScheduler_1.createTestScheduler(), tick = _a.tick, scheduler = _a.scheduler;
var eventList = [];
stream_1.runEffects(stream_1.tap(function (a) { return eventList.push(a); }, stream), scheduler);
return tick(delay).then(function () { return eventList.slice(); });
});
//# sourceMappingURL=collectEventsFor.js.map