mirror of
https://github.com/inventree/InvenTree.git
synced 2026-09-27 14:16:02 +00:00
try fixing leaky firefox tests (#12904)
This commit is contained in:
@@ -76,7 +76,11 @@ async function collectCoverageFromContext(context: BrowserContext) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export const test = baseTest.extend<{}, {}>({
|
type TestFixtures = {
|
||||||
|
closeTestPages: BrowserContext[];
|
||||||
|
};
|
||||||
|
|
||||||
|
export const test = baseTest.extend<TestFixtures, {}>({
|
||||||
// Wrap browser.newPage so contexts created via doCachedLogin also get coverage
|
// Wrap browser.newPage so contexts created via doCachedLogin also get coverage
|
||||||
browser: [
|
browser: [
|
||||||
async ({ browser }, use) => {
|
async ({ browser }, use) => {
|
||||||
@@ -99,6 +103,36 @@ export const test = baseTest.extend<{}, {}>({
|
|||||||
},
|
},
|
||||||
{ scope: 'worker' }
|
{ scope: 'worker' }
|
||||||
],
|
],
|
||||||
|
// remove possibly leaky browser contexts after each test
|
||||||
|
closeTestPages: [
|
||||||
|
async ({ browser }, use) => {
|
||||||
|
const contexts: BrowserContext[] = [];
|
||||||
|
const newPage = browser.newPage.bind(browser);
|
||||||
|
|
||||||
|
(browser as any).newPage = async (
|
||||||
|
options?: Parameters<typeof browser.newPage>[0]
|
||||||
|
) => {
|
||||||
|
const page = await newPage(options);
|
||||||
|
|
||||||
|
if (!contexts.includes(page.context())) {
|
||||||
|
contexts.push(page.context());
|
||||||
|
}
|
||||||
|
|
||||||
|
return page;
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
await use(contexts);
|
||||||
|
} finally {
|
||||||
|
(browser as any).newPage = newPage;
|
||||||
|
for (const context of contexts) {
|
||||||
|
await collectCoverageFromContext(context);
|
||||||
|
await context.close().catch(() => {});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ auto: true }
|
||||||
|
],
|
||||||
|
|
||||||
context: async ({ context }, use) => {
|
context: async ({ context }, use) => {
|
||||||
await setupCoverageCollection(context);
|
await setupCoverageCollection(context);
|
||||||
|
|||||||
Reference in New Issue
Block a user