Skip to content

Commit 52b146f

Browse files
committed
fix(rewrite-rules): add back-compat option transformation to work around rewriteRules default now being an array - fixes #1226
1 parent 97fba06 commit 52b146f

2 files changed

Lines changed: 41 additions & 17 deletions

File tree

lib/options.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ module.exports.update = function (options) {
1919
setServerOpts(item);
2020
setNamespace(item);
2121
fixSnippetOptions(item);
22+
fixRewriteRules(item);
2223
setMiddleware(item);
2324
setOpen(item);
2425

@@ -148,8 +149,14 @@ function setServerOpts(item) {
148149
}
149150

150151
/**
151-
* Back-compat options for snippetOptions.ignorePaths
152+
* Back-compat fixes for rewriteRules being set to a boolean
152153
*/
154+
function fixRewriteRules (item) {
155+
return item.update("rewriteRules", function (rr) {
156+
return Immutable.List([]).concat(rr).filter(Boolean)
157+
});
158+
}
159+
153160
function fixSnippetOptions (item) {
154161

155162
var ignorePaths = item.getIn(["snippetOptions", "ignorePaths"]);

test/specs/e2e/server/e2e.server.rewrite.rules.js

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@ var assert = require("chai").assert;
77

88
describe("E2E server test with rewrite rules", function () {
99

10-
var instance;
11-
12-
before(function (done) {
10+
it("serves files with HTML rewritten", function (done) {
1311

1412
browserSync.reset();
1513

@@ -29,22 +27,41 @@ describe("E2E server test with rewrite rules", function () {
2927
open: false
3028
};
3129

32-
instance = browserSync.init(config, done).instance;
30+
browserSync.init(config, function (err, bs) {
31+
request(bs.server)
32+
.get("/index.html")
33+
.set("accept", "text/html")
34+
.expect(200)
35+
.end(function (err, res) {
36+
if (err) return done(err);
37+
assert.include(res.text, "Shane's forms");
38+
bs.cleanup(done);
39+
});
40+
});
3341
});
42+
it("supports legacy boolean for rewriteRules", function (done) {
3443

35-
after(function () {
36-
instance.cleanup();
37-
});
44+
browserSync.reset();
3845

39-
it("serves files with HTML rewritten", function (done) {
46+
var config = {
47+
server: {
48+
baseDir: "test/fixtures"
49+
},
50+
rewriteRules: false,
51+
logLevel: "silent",
52+
open: false
53+
};
54+
55+
browserSync.init(config, function (err, bs) {
4056

41-
request(instance.server)
42-
.get("/index.html")
43-
.set("accept", "text/html")
44-
.expect(200)
45-
.end(function (err, res) {
46-
assert.include(res.text, "Shane's forms");
47-
done();
48-
});
57+
request(bs.server)
58+
.get("/index.html")
59+
.set("accept", "text/html")
60+
.expect(200)
61+
.end(function (err) {
62+
if (err) return done(err);
63+
bs.cleanup(done);
64+
});
65+
});
4966
});
5067
});

0 commit comments

Comments
 (0)