mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-11-10 15:59:57 +00:00
fix the playwright auth-setup breaking (#22149)
This commit is contained in:
parent
d7c11b1557
commit
79df730b85
@ -73,6 +73,12 @@ setup('authenticate all users', async ({ browser }) => {
|
|||||||
setup.setTimeout(120 * 1000);
|
setup.setTimeout(120 * 1000);
|
||||||
|
|
||||||
let adminPage: Page;
|
let adminPage: Page;
|
||||||
|
let dataConsumerPage: Page;
|
||||||
|
let dataStewardPage: Page;
|
||||||
|
let editDescriptionPage: Page;
|
||||||
|
let editTagsPage: Page;
|
||||||
|
let editGlossaryTermPage: Page;
|
||||||
|
let ownerPage: Page;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Create admin page and context
|
// Create admin page and context
|
||||||
@ -116,27 +122,51 @@ setup('authenticate all users', async ({ browser }) => {
|
|||||||
// Save admin state
|
// Save admin state
|
||||||
await adminPage.context().storageState({ path: adminFile });
|
await adminPage.context().storageState({ path: adminFile });
|
||||||
|
|
||||||
// Login and save states for all users in parallel
|
// Create separate pages for each user
|
||||||
const loginPromises = [
|
const [
|
||||||
{ user: dataConsumer, file: dataConsumerFile },
|
dataConsumerPage,
|
||||||
{ user: dataSteward, file: dataStewardFile },
|
dataStewardPage,
|
||||||
{ user: editDescriptionUser, file: editDescriptionFile },
|
editDescriptionPage,
|
||||||
{ user: editTagsUser, file: editTagsFile },
|
editTagsPage,
|
||||||
{ user: editGlossaryTermUser, file: editGlossaryTermFile },
|
editGlossaryTermPage,
|
||||||
{ user: ownerUser, file: ownerFile },
|
ownerPage,
|
||||||
].map(async ({ user, file }) => {
|
] = await Promise.all([
|
||||||
const page = await browser.newPage();
|
browser.newPage(),
|
||||||
try {
|
browser.newPage(),
|
||||||
await user.login(page);
|
browser.newPage(),
|
||||||
// Wait for successful navigation instead of network idle
|
browser.newPage(),
|
||||||
await page.waitForURL('**/my-data', { timeout: 15000 });
|
browser.newPage(),
|
||||||
await page.context().storageState({ path: file });
|
browser.newPage(),
|
||||||
} finally {
|
]);
|
||||||
await page.close();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
await Promise.all(loginPromises);
|
// Save states for each user sequentially to avoid file operation conflicts
|
||||||
|
await dataConsumer.login(dataConsumerPage);
|
||||||
|
await dataConsumerPage.waitForLoadState('networkidle');
|
||||||
|
await dataConsumerPage.context().storageState({ path: dataConsumerFile });
|
||||||
|
|
||||||
|
await dataSteward.login(dataStewardPage);
|
||||||
|
await dataStewardPage.waitForLoadState('networkidle');
|
||||||
|
await dataStewardPage.context().storageState({ path: dataStewardFile });
|
||||||
|
|
||||||
|
await editDescriptionUser.login(editDescriptionPage);
|
||||||
|
await editDescriptionPage.waitForLoadState('networkidle');
|
||||||
|
await editDescriptionPage
|
||||||
|
.context()
|
||||||
|
.storageState({ path: editDescriptionFile });
|
||||||
|
|
||||||
|
await editTagsUser.login(editTagsPage);
|
||||||
|
await editTagsPage.waitForLoadState('networkidle');
|
||||||
|
await editTagsPage.context().storageState({ path: editTagsFile });
|
||||||
|
|
||||||
|
await editGlossaryTermUser.login(editGlossaryTermPage);
|
||||||
|
await editGlossaryTermPage.waitForLoadState('networkidle');
|
||||||
|
await editGlossaryTermPage
|
||||||
|
.context()
|
||||||
|
.storageState({ path: editGlossaryTermFile });
|
||||||
|
|
||||||
|
await ownerUser.login(ownerPage);
|
||||||
|
await ownerPage.waitForLoadState('networkidle');
|
||||||
|
await ownerPage.context().storageState({ path: ownerFile });
|
||||||
|
|
||||||
await afterAction();
|
await afterAction();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -145,9 +175,24 @@ setup('authenticate all users', async ({ browser }) => {
|
|||||||
|
|
||||||
throw error;
|
throw error;
|
||||||
} finally {
|
} finally {
|
||||||
// Admin page cleanup
|
// Close pages sequentially to avoid conflicts
|
||||||
if (adminPage) {
|
if (dataConsumerPage) {
|
||||||
await adminPage.close();
|
await dataConsumerPage.close();
|
||||||
|
}
|
||||||
|
if (dataStewardPage) {
|
||||||
|
await dataStewardPage.close();
|
||||||
|
}
|
||||||
|
if (editDescriptionPage) {
|
||||||
|
await editDescriptionPage.close();
|
||||||
|
}
|
||||||
|
if (editTagsPage) {
|
||||||
|
await editTagsPage.close();
|
||||||
|
}
|
||||||
|
if (editGlossaryTermPage) {
|
||||||
|
await editGlossaryTermPage.close();
|
||||||
|
}
|
||||||
|
if (ownerPage) {
|
||||||
|
await ownerPage.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user