-
Notifications
You must be signed in to change notification settings - Fork 754
/
middleware.option.js
118 lines (94 loc) · 2.88 KB
/
middleware.option.js
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
"use strict";
var browserSync = require("../../../../index");
var assert = require("chai").assert;
var request = require("supertest");
describe("Accepting middleware as an option (1)", function () {
var bs;
before(function (done) {
browserSync.reset();
var mw = function (req, res) {
res.end("<html><body></body></html>");
};
var config = {
server: {
baseDir: "test/fixtures"
},
middleware: mw, // single function given
logLevel: "silent",
open: false
};
bs = browserSync.init(config, done).instance;
});
after(function () {
bs.cleanup();
});
it("should accept middlewares when given as top-level", function () {
assert.equal(bs.options.get("middleware").size, 2, "1 custom + 1 serve static");
});
});
describe("Accepting middleware as an option (2)", function () {
var bs;
before(function (done) {
browserSync.reset();
var mw1 = function (req, res) {
res.end("<html><body></body></html>");
};
var mw2 = function (req, res) {
res.end("<html><body></body></html>");
};
var config = {
server: {
baseDir: "test/fixtures"
},
middleware: [mw1, mw2], // single function given
logLevel: "silent",
open: false
};
bs = browserSync.init(config, done).instance;
});
after(function () {
bs.cleanup();
});
it("should accept middlewares when given as top-level", function () {
assert.equal(bs.options.get("middleware").size, 3, "2 custom + 1 serve static");
});
});
describe("Accepting middleware as a plain object", function () {
it("should accept middlewares with routes", function (done) {
browserSync.reset();
var called = 0;
var mw1 = function myMiddleware(req, res, next) {
called += 1;
next();
};
var mw2 = function bodyResp(req, res) {
called += 1;
res.end("<html><body>MW2</body></html>");
};
var config = {
server: {
baseDir: "test/fixtures"
},
middleware: [
mw1,
{
route: "/shane",
handle: mw2
}
],
logLevel: "silent",
open: false
};
browserSync.init(config, function (err, bs) {
request(bs.server)
.get("/")
.set("accept", "text/html")
.expect(200)
.end(function () {
assert.equal(called, 1, "should call the first middleware");
bs.cleanup();
done();
});
});
});
});