Skip to content

Commit 1ccc84a

Browse files
committed
tests: add e2e test for web socket proxying
1 parent 8aa9261 commit 1ccc84a

3 files changed

Lines changed: 19 additions & 9 deletions

File tree

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,14 @@
6161
"browser-sync-spa": "^1.0.2",
6262
"bs-snippet-injector": "^2.0.1",
6363
"chai": "^3.2.0",
64-
"chalk": "^1.0.0",
64+
"chalk": "^1.1.0",
6565
"conventional-changelog": "^0.0.17",
6666
"graceful-fs": "^3.0.8",
6767
"gulp": "^3.9.0",
6868
"gulp-contribs": "0.0.3",
6969
"gulp-filter": "^2.0.2",
7070
"gulp-jscs": "^1.6.0",
71-
"gulp-jshint": "^1.11.0",
71+
"gulp-jshint": "^1.11.2",
7272
"gulp-ruby-sass": "^1.0.5",
7373
"gulp-yuidoc": "^0.1.2",
7474
"istanbul": "^0.3.17",

test/specs/e2e/cli/e2e.cli.proxy.ws.js

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
"use strict";
22

33
var path = require("path");
4-
//var request = require("supertest");
54
var assert = require("chai").assert;
65
var connect = require("connect");
76
var browserSync = require(path.resolve("./"));
8-
var serveStatic = require("serve-static");
7+
var socket = require("socket.io");
8+
var client = require("socket.io-client");
99

1010
var pkg = require(path.resolve("package.json"));
1111
var cli = require(path.resolve(pkg.bin));
@@ -17,9 +17,9 @@ describe("E2E CLI proxy + websockets test", function () {
1717
before(function (done) {
1818

1919
browserSync.reset();
20-
var app = connect();
21-
app.use(serveStatic("./test/fixtures"));
22-
server = app.listen();
20+
var app = connect();
21+
server = app.listen();
22+
2323
var proxytarget = "http://localhost:" + server.address().port;
2424

2525
cli({
@@ -43,7 +43,16 @@ describe("E2E CLI proxy + websockets test", function () {
4343
server.close();
4444
instance.cleanup();
4545
});
46-
it("Adds the proxy.ws options", function () {
46+
it("can proxy websocket upgrades", function (done) {
47+
4748
assert.equal(instance.options.getIn(["proxy", "ws"]), true);
49+
50+
socket(server);
51+
52+
server.on("upgrade", function () {
53+
done();
54+
});
55+
56+
client.connect(instance.options.getIn(["urls", "local"]), {forceNew: true});
4857
});
4958
});

test/specs/e2e/e2e.sockets.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ describe("E2E Sockets test", function () {
2323
it("should accept an event & broadcast it", function (done) {
2424

2525
var called;
26+
2627
instance.io.sockets.on("connection", function (client) {
2728
if (!called) {
2829
called = true;
@@ -34,7 +35,7 @@ describe("E2E Sockets test", function () {
3435
var options = instance.options.toJS();
3536

3637
var connectionUrl = options.urls.local + options.socket.namespace;
37-
var client1 = socket(connectionUrl, {path: options.socket.path});
38+
var client1 = socket(connectionUrl, {path: options.socket.path, forceNew: true});
3839

3940
client1.emit("scroll", {name:"shane"});
4041
});

0 commit comments

Comments
 (0)