Skip to content

Instantly share code, notes, and snippets.

@mrijk
Created June 2, 2015 11:13
Show Gist options
  • Save mrijk/e70e891c5fa8bf4f4192 to your computer and use it in GitHub Desktop.
Save mrijk/e70e891c5fa8bf4f4192 to your computer and use it in GitHub Desktop.
'use strict';
var rewire = require('rewire');
var Rx = require('rx');
var RxNode = require('rx-node');
var index = rewire('../index.js');
var mongoStub = {
insert: function(x) {
console.log('Write to Mongo value: ' + x);
}
};
index.__set__('db', mongoStub);
var onNext = Rx.ReactiveTest.onNext,
onCompleted = Rx.ReactiveTest.onCompleted;
var scheduler = new Rx.TestScheduler();
var origInterval = index.__get__('Rx.Observable.interval');
index.__set__('Rx.Observable.interval',
function(period) {
return origInterval(period, scheduler);
});
var origTimer = index.__get__('Rx.Observable.timer');
index.__set__('Rx.Observable.timer',
function(dueTime) {
return origTimer(dueTime, scheduler);
});
describe('The Index module should blabla', function() {
xit('it should summarize events', function(done) {
spyOn(mongoStub, 'insert').andCallThrough();
index.myBrilliantFunction();
scheduler.start();
expect(mongoStub.insert).toHaveBeenCalledWith(10);
done();
});
xit('it should summarize events from an EventEmitter', function(done) {
var EventEmitter = require('events').EventEmitter;
var eventSource = new EventEmitter();
spyOn(mongoStub, 'insert').andCallThrough();
index.myEventCollector(eventSource);
var message = {release: 'bar'};
eventSource.emit('message', message);
scheduler.start();
expect(mongoStub.insert).toHaveBeenCalledWith(1);
done();
});
it('it should summarize events from a timed EventEmitter', function(done) {
var xs = scheduler.createHotObservable(
onNext(150, {release: 1}),
onNext(1000, {release: 1}),
onNext(12000, {release: 3}),
onCompleted(13000)
);
var eventSource = RxNode.toEventEmitter(xs, 'message');
spyOn(mongoStub, 'insert').andCallThrough();
index.myEventCollector(eventSource);
eventSource.publish();
scheduler.start();
expect(mongoStub.insert).toHaveBeenCalled();
expect(mongoStub.insert.callCount).toBe(2);
done();
})
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment