Created
June 2, 2015 11:13
-
-
Save mrijk/e70e891c5fa8bf4f4192 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'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