2018-07-02 23:30:14 -04:00
|
|
|
const ParsePubSub = require('../lib/LiveQuery/ParsePubSub').ParsePubSub;
|
2016-03-10 14:27:00 -08:00
|
|
|
|
|
|
|
|
describe('ParsePubSub', function() {
|
|
|
|
|
|
|
|
|
|
beforeEach(function(done) {
|
|
|
|
|
// Mock RedisPubSub
|
2018-02-17 09:55:30 -05:00
|
|
|
const mockRedisPubSub = {
|
2016-03-10 14:27:00 -08:00
|
|
|
createPublisher: jasmine.createSpy('createPublisherRedis'),
|
|
|
|
|
createSubscriber: jasmine.createSpy('createSubscriberRedis')
|
|
|
|
|
};
|
2018-07-02 23:30:14 -04:00
|
|
|
jasmine.mockLibrary('../lib/Adapters/PubSub/RedisPubSub', 'RedisPubSub', mockRedisPubSub);
|
2016-03-10 14:27:00 -08:00
|
|
|
// Mock EventEmitterPubSub
|
2018-02-17 09:55:30 -05:00
|
|
|
const mockEventEmitterPubSub = {
|
2016-03-10 14:27:00 -08:00
|
|
|
createPublisher: jasmine.createSpy('createPublisherEventEmitter'),
|
|
|
|
|
createSubscriber: jasmine.createSpy('createSubscriberEventEmitter')
|
|
|
|
|
};
|
2018-07-02 23:30:14 -04:00
|
|
|
jasmine.mockLibrary('../lib/Adapters/PubSub/EventEmitterPubSub', 'EventEmitterPubSub', mockEventEmitterPubSub);
|
2016-03-10 14:27:00 -08:00
|
|
|
done();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('can create redis publisher', function() {
|
2016-11-24 15:47:41 -05:00
|
|
|
ParsePubSub.createPublisher({
|
2016-03-10 14:27:00 -08:00
|
|
|
redisURL: 'redisURL'
|
|
|
|
|
});
|
|
|
|
|
|
2018-07-02 23:30:14 -04:00
|
|
|
const RedisPubSub = require('../lib/Adapters/PubSub/RedisPubSub').RedisPubSub;
|
|
|
|
|
const EventEmitterPubSub = require('../lib/Adapters/PubSub/EventEmitterPubSub').EventEmitterPubSub;
|
2016-10-28 12:06:35 -04:00
|
|
|
expect(RedisPubSub.createPublisher).toHaveBeenCalledWith({redisURL: 'redisURL'});
|
2016-03-10 14:27:00 -08:00
|
|
|
expect(EventEmitterPubSub.createPublisher).not.toHaveBeenCalled();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('can create event emitter publisher', function() {
|
2016-11-24 15:47:41 -05:00
|
|
|
ParsePubSub.createPublisher({});
|
2016-03-10 14:27:00 -08:00
|
|
|
|
2018-07-02 23:30:14 -04:00
|
|
|
const RedisPubSub = require('../lib/Adapters/PubSub/RedisPubSub').RedisPubSub;
|
|
|
|
|
const EventEmitterPubSub = require('../lib/Adapters/PubSub/EventEmitterPubSub').EventEmitterPubSub;
|
2016-03-10 14:27:00 -08:00
|
|
|
expect(RedisPubSub.createPublisher).not.toHaveBeenCalled();
|
|
|
|
|
expect(EventEmitterPubSub.createPublisher).toHaveBeenCalled();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('can create redis subscriber', function() {
|
2016-11-24 15:47:41 -05:00
|
|
|
ParsePubSub.createSubscriber({
|
2016-03-10 14:27:00 -08:00
|
|
|
redisURL: 'redisURL'
|
|
|
|
|
});
|
|
|
|
|
|
2018-07-02 23:30:14 -04:00
|
|
|
const RedisPubSub = require('../lib/Adapters/PubSub/RedisPubSub').RedisPubSub;
|
|
|
|
|
const EventEmitterPubSub = require('../lib/Adapters/PubSub/EventEmitterPubSub').EventEmitterPubSub;
|
2016-10-28 12:06:35 -04:00
|
|
|
expect(RedisPubSub.createSubscriber).toHaveBeenCalledWith({redisURL: 'redisURL'});
|
2016-03-10 14:27:00 -08:00
|
|
|
expect(EventEmitterPubSub.createSubscriber).not.toHaveBeenCalled();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('can create event emitter subscriber', function() {
|
2016-11-24 15:47:41 -05:00
|
|
|
ParsePubSub.createSubscriber({});
|
2016-03-10 14:27:00 -08:00
|
|
|
|
2018-07-02 23:30:14 -04:00
|
|
|
const RedisPubSub = require('../lib/Adapters/PubSub/RedisPubSub').RedisPubSub;
|
|
|
|
|
const EventEmitterPubSub = require('../lib/Adapters/PubSub/EventEmitterPubSub').EventEmitterPubSub;
|
2016-03-10 14:27:00 -08:00
|
|
|
expect(RedisPubSub.createSubscriber).not.toHaveBeenCalled();
|
|
|
|
|
expect(EventEmitterPubSub.createSubscriber).toHaveBeenCalled();
|
|
|
|
|
});
|
|
|
|
|
|
2016-10-28 12:06:35 -04:00
|
|
|
it('can create publisher/sub with custom adapter', function() {
|
2016-12-07 15:17:05 -08:00
|
|
|
const adapter = {
|
2016-10-28 12:06:35 -04:00
|
|
|
createPublisher: jasmine.createSpy('createPublisher'),
|
|
|
|
|
createSubscriber: jasmine.createSpy('createSubscriber')
|
|
|
|
|
}
|
|
|
|
|
ParsePubSub.createPublisher({
|
|
|
|
|
pubSubAdapter: adapter
|
|
|
|
|
});
|
|
|
|
|
expect(adapter.createPublisher).toHaveBeenCalled();
|
|
|
|
|
|
|
|
|
|
ParsePubSub.createSubscriber({
|
|
|
|
|
pubSubAdapter: adapter
|
|
|
|
|
});
|
|
|
|
|
expect(adapter.createSubscriber).toHaveBeenCalled();
|
|
|
|
|
|
2018-07-02 23:30:14 -04:00
|
|
|
const RedisPubSub = require('../lib/Adapters/PubSub/RedisPubSub').RedisPubSub;
|
|
|
|
|
const EventEmitterPubSub = require('../lib/Adapters/PubSub/EventEmitterPubSub').EventEmitterPubSub;
|
2016-10-28 12:06:35 -04:00
|
|
|
expect(RedisPubSub.createSubscriber).not.toHaveBeenCalled();
|
|
|
|
|
expect(EventEmitterPubSub.createSubscriber).not.toHaveBeenCalled();
|
|
|
|
|
expect(RedisPubSub.createPublisher).not.toHaveBeenCalled();
|
|
|
|
|
expect(EventEmitterPubSub.createPublisher).not.toHaveBeenCalled();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('can create publisher/sub with custom function adapter', function() {
|
2016-12-07 15:17:05 -08:00
|
|
|
const adapter = {
|
2016-10-28 12:06:35 -04:00
|
|
|
createPublisher: jasmine.createSpy('createPublisher'),
|
|
|
|
|
createSubscriber: jasmine.createSpy('createSubscriber')
|
|
|
|
|
}
|
|
|
|
|
ParsePubSub.createPublisher({
|
|
|
|
|
pubSubAdapter: function() {
|
|
|
|
|
return adapter;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
expect(adapter.createPublisher).toHaveBeenCalled();
|
|
|
|
|
|
|
|
|
|
ParsePubSub.createSubscriber({
|
|
|
|
|
pubSubAdapter: function() {
|
|
|
|
|
return adapter;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
expect(adapter.createSubscriber).toHaveBeenCalled();
|
|
|
|
|
|
2018-07-02 23:30:14 -04:00
|
|
|
const RedisPubSub = require('../lib/Adapters/PubSub/RedisPubSub').RedisPubSub;
|
|
|
|
|
const EventEmitterPubSub = require('../lib/Adapters/PubSub/EventEmitterPubSub').EventEmitterPubSub;
|
2016-10-28 12:06:35 -04:00
|
|
|
expect(RedisPubSub.createSubscriber).not.toHaveBeenCalled();
|
|
|
|
|
expect(EventEmitterPubSub.createSubscriber).not.toHaveBeenCalled();
|
|
|
|
|
expect(RedisPubSub.createPublisher).not.toHaveBeenCalled();
|
|
|
|
|
expect(EventEmitterPubSub.createPublisher).not.toHaveBeenCalled();
|
|
|
|
|
});
|
|
|
|
|
|
2016-03-10 14:27:00 -08:00
|
|
|
afterEach(function(){
|
2018-07-02 23:30:14 -04:00
|
|
|
jasmine.restoreLibrary('../lib/Adapters/PubSub/RedisPubSub', 'RedisPubSub');
|
|
|
|
|
jasmine.restoreLibrary('../lib/Adapters/PubSub/EventEmitterPubSub', 'EventEmitterPubSub');
|
2016-03-10 14:27:00 -08:00
|
|
|
});
|
|
|
|
|
});
|