1 | 'use strict';
|
2 |
|
3 | var assert = require('assert'),
|
4 | WebSocket = require('ws'),
|
5 | koa = require('koa'),
|
6 | route = require('koa-route');
|
7 |
|
8 | var koaws = require('..');
|
9 |
|
10 | describe('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 | });
|