Skip to content

Commit 5c4c114

Browse files
committed
fix playwright hanging issue caused by global fake module variable not being deleted after the selector engine is registered
1 parent 608add5 commit 5c4c114

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/node/main.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,18 @@ export type SelectorEngine = Parameters<typeof selectors.register>[1]
77
const selectorEngine = (fileName: string): SelectorEngine => ({
88
// https://github.com/microsoft/playwright/issues/36448
99
content: `(() => {
10-
if (typeof module === 'undefined') {
10+
const useFakeModule = typeof module === 'undefined'
11+
if (useFakeModule) {
1112
window.module = {exports: {}};
1213
}
13-
${readFileSync(join(__dirname, `../../dist/browser/${fileName}.js`), 'utf8')};
14+
try {
15+
${readFileSync(join(__dirname, `../../dist/browser/${fileName}.js`), 'utf8')};
16+
return module.exports.default
17+
} finally {
18+
if (useFakeModule) {
19+
delete module
20+
}
21+
}
1422
return module.exports.default
1523
})()`,
1624
})

0 commit comments

Comments
 (0)