Files
kami-parse-server/spec/ParseWebSocketServer.spec.js

46 lines
1.2 KiB
JavaScript
Raw Normal View History

const {
ParseWebSocketServer,
} = require('../lib/LiveQuery/ParseWebSocketServer');
2016-03-10 14:27:00 -08:00
describe('ParseWebSocketServer', function() {
beforeEach(function(done) {
// Mock ws server
const EventEmitter = require('events');
const mockServer = function() {
2016-03-10 14:27:00 -08:00
return new EventEmitter();
};
jasmine.mockLibrary('ws', 'Server', mockServer);
done();
});
it('can handle connect event when ws is open', function(done) {
const onConnectCallback = jasmine.createSpy('onConnectCallback');
const http = require('http');
const server = http.createServer();
const parseWebSocketServer = new ParseWebSocketServer(
server,
onConnectCallback,
{ websocketTimeout: 5 }
).server;
const ws = {
2016-03-10 14:27:00 -08:00
readyState: 0,
OPEN: 0,
ping: jasmine.createSpy('ping'),
2016-03-10 14:27:00 -08:00
};
parseWebSocketServer.onConnection(ws);
2016-03-10 14:27:00 -08:00
// Make sure callback is called
expect(onConnectCallback).toHaveBeenCalled();
// Make sure we ping to the client
setTimeout(function() {
expect(ws.ping).toHaveBeenCalled();
server.close();
2016-03-10 14:27:00 -08:00
done();
}, 10);
2016-03-10 14:27:00 -08:00
});
afterEach(function() {
2016-03-10 14:27:00 -08:00
jasmine.restoreLibrary('ws', 'Server');
});
});