Skip to content

Commit 45bb778

Browse files
committed
test: add test for overlay runtime error at initial load
1 parent 91cfd01 commit 45bb778

File tree

3 files changed

+51
-0
lines changed

3 files changed

+51
-0
lines changed

client-src/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import sendMessage from "./utils/sendMessage.js";
4545
* @property {boolean} isUnloading true when unloaded, otherwise false
4646
* @property {string} currentHash current hash
4747
* @property {string=} previousHash previous hash
48+
* @property {boolean} hasRuntimeError true when a runtime error occurred
4849
*/
4950

5051
/**
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
"use strict";
2+
3+
const path = require("node:path");
4+
const puppeteer = require("puppeteer");
5+
const webpack = require("webpack");
6+
const WebpackDevServer = require("../../lib/Server");
7+
8+
describe("overlay runtime error", () => {
9+
let browser;
10+
let page;
11+
let server;
12+
13+
beforeAll(async () => {
14+
const config = {
15+
mode: "development",
16+
entry: path.resolve(__dirname, "../fixtures/overlay-runtime-error.js"),
17+
};
18+
19+
const compiler = webpack(config);
20+
21+
server = new WebpackDevServer(
22+
{
23+
port: 8081,
24+
client: {
25+
overlay: true,
26+
},
27+
},
28+
compiler,
29+
);
30+
31+
await server.start();
32+
33+
browser = await puppeteer.launch();
34+
page = await browser.newPage();
35+
});
36+
37+
afterAll(async () => {
38+
await browser.close();
39+
await server.stop();
40+
});
41+
42+
it("should keep overlay visible on runtime error during initial load", async () => {
43+
await page.goto("http://localhost:8081");
44+
45+
const overlay = await page.$("webpack-dev-server-client-overlay");
46+
47+
expect(overlay).not.toBeNull();
48+
});
49+
});
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
throw new Error("Initial runtime error");

0 commit comments

Comments
 (0)