Initial commit
[yaffs-website] / node_modules / tiny-lr / test / client.js
1
2 var request = require('supertest');
3 var assert  = require('assert');
4 var parse   = require('url').parse;
5
6 var WebSocket = require('faye-websocket').Client;
7 var Server = require('..').Server;
8
9 var listen = require('./helpers/listen');
10
11 describe('tiny-lr', function() {
12
13   before(listen());
14
15   it('accepts ws clients', function(done) {
16     var url = parse(this.request.url);
17     var server = this.app;
18
19     var ws = this.ws = new WebSocket('ws://' + url.host + '/livereload');
20
21     ws.onopen = function(event) {
22       var hello = {
23         command: 'hello',
24         protocols: ['http://livereload.com/protocols/official-7']
25       };
26
27       ws.send(JSON.stringify(hello));
28     };
29
30     ws.onmessage = function(event) {
31       assert.deepEqual(event.data, JSON.stringify({
32         command: 'hello',
33         protocols: ['http://livereload.com/protocols/official-7'],
34         serverName: 'tiny-lr'
35       }));
36
37       assert.ok(Object.keys(server.clients).length);
38       done();
39     };
40   });
41
42   it('properly cleans up established connection on exit', function(done) {
43     var ws = this.ws;
44
45     ws.onclose = done.bind(null, null);
46
47     request(this.server)
48       .get('/kill')
49       .expect(200, function() {});
50   });
51
52 });