Skip to content

Commit 1cfd6ca

Browse files
snitin315alexander-akait
authored andcommitted
test: refactor web socket communication tests to cleanup properly (#4920)
1 parent 9380991 commit 1cfd6ca

File tree

1 file changed

+91
-76
lines changed

1 file changed

+91
-76
lines changed

test/e2e/web-socket-communication.test.js

Lines changed: 91 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -28,35 +28,42 @@ describe("web socket communication", () => {
2828

2929
const { page, browser } = await runBrowser();
3030

31-
const pageErrors = [];
32-
const consoleMessages = [];
33-
34-
page
35-
.on("console", (message) => {
36-
consoleMessages.push(message.text());
37-
})
38-
.on("pageerror", (error) => {
39-
pageErrors.push(error);
31+
try {
32+
const pageErrors = [];
33+
const consoleMessages = [];
34+
35+
page
36+
.on("console", (message) => {
37+
consoleMessages.push(message.text());
38+
})
39+
.on("pageerror", (error) => {
40+
pageErrors.push(error);
41+
});
42+
43+
await page.goto(`http://127.0.0.1:${port}/`, {
44+
waitUntil: "networkidle0",
4045
});
4146

42-
await page.goto(`http://127.0.0.1:${port}/`, {
43-
waitUntil: "networkidle0",
44-
});
45-
await server.stop();
46-
await new Promise((resolve) => {
47-
const interval = setInterval(() => {
48-
if (consoleMessages.includes("[webpack-dev-server] Disconnected!")) {
49-
clearInterval(interval);
50-
51-
resolve();
52-
}
53-
}, 100);
54-
});
55-
56-
expect(consoleMessages).toMatchSnapshot("console messages");
57-
expect(pageErrors).toMatchSnapshot("page errors");
47+
await server.stop();
48+
await new Promise((resolve) => {
49+
const interval = setInterval(() => {
50+
if (
51+
consoleMessages.includes("[webpack-dev-server] Disconnected!")
52+
) {
53+
clearInterval(interval);
54+
55+
resolve();
56+
}
57+
}, 100);
58+
});
5859

59-
await browser.close();
60+
expect(consoleMessages).toMatchSnapshot("console messages");
61+
expect(pageErrors).toMatchSnapshot("page errors");
62+
} catch (error) {
63+
throw error;
64+
} finally {
65+
await browser.close();
66+
}
6067
});
6168

6269
it(`should work and terminate client that is not alive ("${websocketServer}")`, async () => {
@@ -73,36 +80,40 @@ describe("web socket communication", () => {
7380

7481
const { page, browser } = await runBrowser();
7582

76-
const pageErrors = [];
77-
const consoleMessages = [];
83+
try {
84+
const pageErrors = [];
85+
const consoleMessages = [];
7886

79-
page
80-
.on("console", (message) => {
81-
consoleMessages.push(message);
82-
})
83-
.on("pageerror", (error) => {
84-
pageErrors.push(error);
85-
});
87+
page
88+
.on("console", (message) => {
89+
consoleMessages.push(message);
90+
})
91+
.on("pageerror", (error) => {
92+
pageErrors.push(error);
93+
});
8694

87-
await page.goto(`http://127.0.0.1:${port}/`, {
88-
waitUntil: "networkidle0",
89-
});
90-
await browser.close();
91-
92-
// Wait heartbeat
93-
await new Promise((resolve) => {
94-
setTimeout(() => {
95-
resolve();
96-
}, 200);
97-
});
95+
await page.goto(`http://127.0.0.1:${port}/`, {
96+
waitUntil: "networkidle0",
97+
});
98+
await browser.close();
9899

99-
expect(server.webSocketServer.clients.length).toBe(0);
100-
expect(consoleMessages.map((message) => message.text())).toMatchSnapshot(
101-
"console messages"
102-
);
103-
expect(pageErrors).toMatchSnapshot("page errors");
100+
// Wait heartbeat
101+
await new Promise((resolve) => {
102+
setTimeout(() => {
103+
resolve();
104+
}, 200);
105+
});
104106

105-
await server.stop();
107+
expect(server.webSocketServer.clients.length).toBe(0);
108+
expect(
109+
consoleMessages.map((message) => message.text())
110+
).toMatchSnapshot("console messages");
111+
expect(pageErrors).toMatchSnapshot("page errors");
112+
} catch (error) {
113+
throw error;
114+
} finally {
115+
await server.stop();
116+
}
106117
});
107118

108119
it(`should work and reconnect when the connection is lost ("${websocketServer}")`, async () => {
@@ -119,35 +130,39 @@ describe("web socket communication", () => {
119130

120131
const { page, browser } = await runBrowser();
121132

122-
const pageErrors = [];
123-
const consoleMessages = [];
124-
125-
page
126-
.on("console", (message) => {
127-
consoleMessages.push(message);
128-
})
129-
.on("pageerror", (error) => {
130-
pageErrors.push(error);
131-
});
133+
try {
134+
const pageErrors = [];
135+
const consoleMessages = [];
132136

133-
await page.goto(`http://127.0.0.1:${port}/`, {
134-
waitUntil: "networkidle0",
135-
});
137+
page
138+
.on("console", (message) => {
139+
consoleMessages.push(message);
140+
})
141+
.on("pageerror", (error) => {
142+
pageErrors.push(error);
143+
});
136144

137-
await server.stop();
138-
await server.start();
145+
await page.goto(`http://127.0.0.1:${port}/`, {
146+
waitUntil: "networkidle0",
147+
});
139148

140-
await page.waitForNavigation({
141-
waitUntil: "networkidle0",
142-
});
149+
await server.stop();
150+
await server.start();
143151

144-
expect(consoleMessages.map((message) => message.text())).toMatchSnapshot(
145-
"console messages"
146-
);
147-
expect(pageErrors).toMatchSnapshot("page errors");
152+
await page.waitForNavigation({
153+
waitUntil: "networkidle0",
154+
});
148155

149-
await browser.close();
150-
await server.stop();
156+
expect(
157+
consoleMessages.map((message) => message.text())
158+
).toMatchSnapshot("console messages");
159+
expect(pageErrors).toMatchSnapshot("page errors");
160+
} catch (error) {
161+
throw error;
162+
} finally {
163+
await browser.close();
164+
await server.stop();
165+
}
151166
});
152167
});
153168

0 commit comments

Comments
 (0)