81 lines
2.7 KiB
JavaScript
81 lines
2.7 KiB
JavaScript
const ParseCloudCodePublisher = require('../lib/LiveQuery/ParseCloudCodePublisher')
|
|
.ParseCloudCodePublisher;
|
|
const Parse = require('parse/node');
|
|
|
|
describe('ParseCloudCodePublisher', function() {
|
|
beforeEach(function(done) {
|
|
// Mock ParsePubSub
|
|
const mockParsePubSub = {
|
|
createPublisher: jasmine.createSpy('publish').and.returnValue({
|
|
publish: jasmine.createSpy('publish'),
|
|
on: jasmine.createSpy('on'),
|
|
}),
|
|
createSubscriber: jasmine.createSpy('publish').and.returnValue({
|
|
subscribe: jasmine.createSpy('subscribe'),
|
|
on: jasmine.createSpy('on'),
|
|
}),
|
|
};
|
|
jasmine.mockLibrary(
|
|
'../lib/LiveQuery/ParsePubSub',
|
|
'ParsePubSub',
|
|
mockParsePubSub
|
|
);
|
|
done();
|
|
});
|
|
|
|
it('can initialize', function() {
|
|
const config = {};
|
|
new ParseCloudCodePublisher(config);
|
|
|
|
const ParsePubSub = require('../lib/LiveQuery/ParsePubSub').ParsePubSub;
|
|
expect(ParsePubSub.createPublisher).toHaveBeenCalledWith(config);
|
|
});
|
|
|
|
it('can handle cloud code afterSave request', function() {
|
|
const publisher = new ParseCloudCodePublisher({});
|
|
publisher._onCloudCodeMessage = jasmine.createSpy('onCloudCodeMessage');
|
|
const request = {};
|
|
publisher.onCloudCodeAfterSave(request);
|
|
|
|
expect(publisher._onCloudCodeMessage).toHaveBeenCalledWith(
|
|
Parse.applicationId + 'afterSave',
|
|
request
|
|
);
|
|
});
|
|
|
|
it('can handle cloud code afterDelete request', function() {
|
|
const publisher = new ParseCloudCodePublisher({});
|
|
publisher._onCloudCodeMessage = jasmine.createSpy('onCloudCodeMessage');
|
|
const request = {};
|
|
publisher.onCloudCodeAfterDelete(request);
|
|
|
|
expect(publisher._onCloudCodeMessage).toHaveBeenCalledWith(
|
|
Parse.applicationId + 'afterDelete',
|
|
request
|
|
);
|
|
});
|
|
|
|
it('can handle cloud code request', function() {
|
|
const publisher = new ParseCloudCodePublisher({});
|
|
const currentParseObject = new Parse.Object('Test');
|
|
currentParseObject.set('key', 'value');
|
|
const originalParseObject = new Parse.Object('Test');
|
|
originalParseObject.set('key', 'originalValue');
|
|
const request = {
|
|
object: currentParseObject,
|
|
original: originalParseObject,
|
|
};
|
|
publisher._onCloudCodeMessage('afterSave', request);
|
|
|
|
const args = publisher.parsePublisher.publish.calls.mostRecent().args;
|
|
expect(args[0]).toBe('afterSave');
|
|
const message = JSON.parse(args[1]);
|
|
expect(message.currentParseObject).toEqual(request.object._toFullJSON());
|
|
expect(message.originalParseObject).toEqual(request.original._toFullJSON());
|
|
});
|
|
|
|
afterEach(function() {
|
|
jasmine.restoreLibrary('../lib/LiveQuery/ParsePubSub', 'ParsePubSub');
|
|
});
|
|
});
|