Skip to content

Commit 290a66d

Browse files
committed
Use puppeteer request interception instead of server request blocking
1 parent 9c404cf commit 290a66d

File tree

2 files changed

+39
-37
lines changed

2 files changed

+39
-37
lines changed

fixtures/app/server.js

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -18,33 +18,21 @@ const routes = {
1818
};
1919

2020
function createServer() {
21-
let blockNetwork = Promise.resolve();
22-
let unblock = () => {};
2321
const server = http.createServer((req, res) => {
24-
blockNetwork.then(() => {
25-
const script = routes[req.url];
26-
if (script) {
27-
res.setHeader("Content-Type", "text/html");
28-
res.statusCode = 200;
29-
return void res.end(template(script));
30-
}
31-
if (req.url === "/mappings.wasm") {
32-
return wasm(req, res);
33-
}
34-
if (req.url === "/worker.js") {
35-
return worker(req, res);
36-
}
37-
return assets(req, res);
38-
});
22+
const script = routes[req.url];
23+
if (script) {
24+
res.setHeader("Content-Type", "text/html");
25+
res.statusCode = 200;
26+
return void res.end(template(script));
27+
}
28+
if (req.url === "/mappings.wasm") {
29+
return wasm(req, res);
30+
}
31+
if (req.url === "/worker.js") {
32+
return worker(req, res);
33+
}
34+
return assets(req, res);
3935
});
40-
server.blockAllRequests = () => {
41-
blockNetwork = new Promise(resolve => {
42-
unblock = resolve;
43-
});
44-
};
45-
server.unblockAllRequests = () => {
46-
unblock();
47-
};
4836
return server;
4937
}
5038

tests/index.js

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,32 @@ test(`replaying requests after invalidation`, async t => {
105105
t.fail("recieved error");
106106
},
107107
);
108-
server.blockAllRequests();
109-
page.evaluate(() => {
108+
await page.setRequestInterception(true);
109+
let invalidated = false;
110+
page.on("request", req => {
111+
req.continue();
112+
if (req._url.endsWith(".js.map")) {
113+
// invalidate after first request
114+
if (!invalidated) {
115+
page.evaluate(() => {
116+
window.worker.postMessage({
117+
id: "invalidate",
118+
});
119+
});
120+
invalidated = true;
121+
} else {
122+
t.pass("sourcemap fetched twice");
123+
// end test
124+
page.evaluate(() => {
125+
window.worker.postMessage({
126+
id: "set_render_interval",
127+
interval: 60,
128+
});
129+
});
130+
}
131+
}
132+
});
133+
await page.evaluate(() => {
110134
window.worker.postMessage({
111135
id: "init_wasm",
112136
url: "/mappings.wasm",
@@ -117,16 +141,6 @@ test(`replaying requests after invalidation`, async t => {
117141
className: "__debug-1",
118142
stackIndex: 0,
119143
});
120-
window.worker.postMessage({
121-
id: "invalidate",
122-
});
123-
});
124-
server.unblockAllRequests();
125-
page.evaluate(() => {
126-
window.worker.postMessage({
127-
id: "set_render_interval",
128-
interval: 60,
129-
});
130144
});
131145
});
132146

0 commit comments

Comments
 (0)