2 var request = require('supertest');
3 var assert = require('assert');
4 var parse = require('url').parse;
6 var WebSocket = require('faye-websocket').Client;
7 var Server = require('..').Server;
9 var listen = require('./helpers/listen');
11 describe('tiny-lr', function() {
15 it('accepts ws clients', function(done) {
16 var url = parse(this.request.url);
17 var server = this.app;
19 var ws = this.ws = new WebSocket('ws://' + url.host + '/livereload');
21 ws.onopen = function(event) {
24 protocols: ['http://livereload.com/protocols/official-7']
27 ws.send(JSON.stringify(hello));
30 ws.onmessage = function(event) {
31 assert.deepEqual(event.data, JSON.stringify({
33 protocols: ['http://livereload.com/protocols/official-7'],
37 assert.ok(Object.keys(server.clients).length);
42 it('properly cleans up established connection on exit', function(done) {
45 ws.onclose = done.bind(null, null);
49 .expect(200, function() {});