liudong
2023-05-29 340f156319b863525e50e900c58e59b86ecb3d5e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
'use strict';
 
var _supertest = require('supertest');
 
var _supertest2 = _interopRequireDefault(_supertest);
 
var _assert = require('assert');
 
var _assert2 = _interopRequireDefault(_assert);
 
var _url = require('url');
 
var _listen = require('./helpers/listen');
 
var _listen2 = _interopRequireDefault(_listen);
 
var _fayeWebsocket = require('faye-websocket');
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
describe('tiny-lr', function () {
  before((0, _listen2.default)());
  it('accepts ws clients', function (done) {
    var url = (0, _url.parse)(this.request.url);
    var server = this.app;
 
    var ws = this.ws = new _fayeWebsocket.Client('ws://' + url.host + '/livereload');
 
    ws.onopen = function (event) {
      var hello = {
        command: 'hello',
        protocols: ['http://livereload.com/protocols/official-7']
      };
 
      ws.send(JSON.stringify(hello));
    };
 
    ws.onmessage = function (event) {
      _assert2.default.deepEqual(event.data, JSON.stringify({
        command: 'hello',
        protocols: ['http://livereload.com/protocols/official-7'],
        serverName: 'tiny-lr'
      }));
 
      _assert2.default.ok(Object.keys(server.clients).length);
      done();
    };
  });
 
  it('properly cleans up established connection on exit', function (done) {
    var ws = this.ws;
 
    ws.onclose = done.bind(null, null);
 
    (0, _supertest2.default)(this.server).get('/kill').expect(200, function () {});
  });
});