Skip to content

Commit 2d39e91

Browse files
authored
test: add e2e tests for onBeforeSetupMiddleware option (#3710)
1 parent db4e75c commit 2d39e91

File tree

4 files changed

+160
-54
lines changed

4 files changed

+160
-54
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Jest Snapshot v1, https://goo.gl/fbAQLP
2+
3+
exports[`onBeforeSetupMiddleware option should handle GET request to /before/some/path route: console messages 1`] = `Array []`;
4+
5+
exports[`onBeforeSetupMiddleware option should handle GET request to /before/some/path route: page errors 1`] = `Array []`;
6+
7+
exports[`onBeforeSetupMiddleware option should handle GET request to /before/some/path route: response headers content-type 1`] = `"text/html; charset=utf-8"`;
8+
9+
exports[`onBeforeSetupMiddleware option should handle GET request to /before/some/path route: response status 1`] = `200`;
10+
11+
exports[`onBeforeSetupMiddleware option should handle GET request to /before/some/path route: response text 1`] = `"before"`;
12+
13+
exports[`onBeforeSetupMiddleware option should handle POST request to /before/some/path route: console messages 1`] = `Array []`;
14+
15+
exports[`onBeforeSetupMiddleware option should handle POST request to /before/some/path route: page errors 1`] = `Array []`;
16+
17+
exports[`onBeforeSetupMiddleware option should handle POST request to /before/some/path route: response headers content-type 1`] = `"text/html; charset=utf-8"`;
18+
19+
exports[`onBeforeSetupMiddleware option should handle POST request to /before/some/path route: response status 1`] = `200`;
20+
21+
exports[`onBeforeSetupMiddleware option should handle POST request to /before/some/path route: response text 1`] = `"brefore POST"`;
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Jest Snapshot v1, https://goo.gl/fbAQLP
2+
3+
exports[`onBeforeSetupMiddleware option should handle GET request to /before/some/path route: console messages 1`] = `Array []`;
4+
5+
exports[`onBeforeSetupMiddleware option should handle GET request to /before/some/path route: page errors 1`] = `Array []`;
6+
7+
exports[`onBeforeSetupMiddleware option should handle GET request to /before/some/path route: response headers content-type 1`] = `"text/html; charset=utf-8"`;
8+
9+
exports[`onBeforeSetupMiddleware option should handle GET request to /before/some/path route: response status 1`] = `200`;
10+
11+
exports[`onBeforeSetupMiddleware option should handle GET request to /before/some/path route: response text 1`] = `"before"`;
12+
13+
exports[`onBeforeSetupMiddleware option should handle POST request to /before/some/path route: console messages 1`] = `Array []`;
14+
15+
exports[`onBeforeSetupMiddleware option should handle POST request to /before/some/path route: page errors 1`] = `Array []`;
16+
17+
exports[`onBeforeSetupMiddleware option should handle POST request to /before/some/path route: response headers content-type 1`] = `"text/html; charset=utf-8"`;
18+
19+
exports[`onBeforeSetupMiddleware option should handle POST request to /before/some/path route: response status 1`] = `200`;
20+
21+
exports[`onBeforeSetupMiddleware option should handle POST request to /before/some/path route: response text 1`] = `"brefore POST"`;
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
"use strict";
2+
3+
const webpack = require("webpack");
4+
const Server = require("../../lib/Server");
5+
const config = require("../fixtures/client-config/webpack.config");
6+
const runBrowser = require("../helpers/run-browser");
7+
const port = require("../ports-map")["on-before-setup-middleware-option"];
8+
9+
describe("onBeforeSetupMiddleware option", () => {
10+
let compiler;
11+
let server;
12+
let page;
13+
let browser;
14+
let pageErrors;
15+
let consoleMessages;
16+
17+
beforeEach(async () => {
18+
compiler = webpack(config);
19+
server = new Server(
20+
{
21+
onBeforeSetupMiddleware: (devServer) => {
22+
if (!devServer) {
23+
throw new Error("webpack-dev-server is not defined");
24+
}
25+
26+
devServer.app.get("/before/some/path", (_, response) => {
27+
response.send("before");
28+
});
29+
30+
devServer.app.post("/before/some/path", (_, response) => {
31+
response.send("brefore POST");
32+
});
33+
},
34+
port,
35+
},
36+
compiler
37+
);
38+
39+
await server.start();
40+
41+
({ page, browser } = await runBrowser());
42+
43+
pageErrors = [];
44+
consoleMessages = [];
45+
});
46+
47+
afterEach(async () => {
48+
await browser.close();
49+
await server.stop();
50+
});
51+
52+
it("should handle GET request to /before/some/path route", async () => {
53+
page
54+
.on("console", (message) => {
55+
consoleMessages.push(message);
56+
})
57+
.on("pageerror", (error) => {
58+
pageErrors.push(error);
59+
});
60+
61+
const response = await page.goto(
62+
`http://127.0.0.1:${port}/before/some/path`,
63+
{
64+
waitUntil: "networkidle0",
65+
}
66+
);
67+
68+
expect(response.headers()["content-type"]).toMatchSnapshot(
69+
"response headers content-type"
70+
);
71+
72+
expect(response.status()).toMatchSnapshot("response status");
73+
74+
expect(await response.text()).toMatchSnapshot("response text");
75+
76+
expect(consoleMessages.map((message) => message.text())).toMatchSnapshot(
77+
"console messages"
78+
);
79+
80+
expect(pageErrors).toMatchSnapshot("page errors");
81+
});
82+
83+
it("should handle POST request to /before/some/path route", async () => {
84+
await page.setRequestInterception(true);
85+
86+
page
87+
.on("console", (message) => {
88+
consoleMessages.push(message);
89+
})
90+
.on("pageerror", (error) => {
91+
pageErrors.push(error);
92+
})
93+
.on("request", (interceptedRequest) => {
94+
interceptedRequest.continue({ method: "POST" });
95+
});
96+
97+
const response = await page.goto(
98+
`http://127.0.0.1:${port}/before/some/path`,
99+
{
100+
waitUntil: "networkidle0",
101+
}
102+
);
103+
104+
expect(response.headers()["content-type"]).toMatchSnapshot(
105+
"response headers content-type"
106+
);
107+
108+
expect(response.status()).toMatchSnapshot("response status");
109+
110+
expect(await response.text()).toMatchSnapshot("response text");
111+
112+
expect(consoleMessages.map((message) => message.text())).toMatchSnapshot(
113+
"console messages"
114+
);
115+
116+
expect(pageErrors).toMatchSnapshot("page errors");
117+
});
118+
});

test/server/onBeforeSetupMiddleware-option.test.js

Lines changed: 0 additions & 54 deletions
This file was deleted.

0 commit comments

Comments
 (0)