UNPKG

1.51 kBJavaScriptView Raw
1'use strict';
2
3var assert = require('assert'),
4 WebSocket = require('ws'),
5 koa = require('koa'),
6 route = require('koa-route');
7
8var koaws = require('..');
9
10describe('should route ws messages seperately', function() {
11 var app = koaws(koa());
12 app.ws.use(route.all('/abc', function*() {
13 this.websocket.on('message', function(message) {
14 this.websocket.send(message);
15 }.bind(this));
16 }));
17
18 app.ws.use(route.all('/def', function*() {
19 this.websocket.on('message', function(message) {
20 this.websocket.send(message);
21 }.bind(this));
22 }));
23
24 var server = app.listen();
25
26 it('sends abc message to abc route', function(done){
27 var ws = new WebSocket('ws://localhost:' + server.address().port + '/abc');
28 ws.on('open', function() {
29 ws.send('abc');
30 });
31 ws.on('message', function(message) {
32 assert(message === 'abc');
33 done();
34 });
35 });
36
37 it('sends def message to def route', function(done){
38 var ws = new WebSocket('ws://localhost:' + server.address().port + '/def');
39 ws.on('open', function() {
40 ws.send('def');
41 });
42 ws.on('message', function(message) {
43 assert(message === 'def');
44 done();
45 });
46 });
47
48 it('handles urls with query parameters', function(done){
49 var ws = new WebSocket('ws://localhost:' + server.address().port + '/abc?foo=bar');
50 ws.on('open', function() {
51 ws.send('abc');
52 });
53 ws.on('message', function(message) {
54 assert(message === 'abc');
55 done();
56 });
57 });
58});