From 0a1ab95f8bc49e8f6cd113340f7d924dbc7014cf Mon Sep 17 00:00:00 2001 From: Sweta Agarwalla <105535990+sweta1308@users.noreply.github.com> Date: Mon, 6 Jan 2025 13:58:13 +0530 Subject: [PATCH] Add utils for login as admin (#19223) * add utils for login as admin * update as per comments * fix java checkstyle issue --------- Co-authored-by: Shailesh Parmar --- .../resources/ui/playwright/e2e/auth.setup.ts | 33 ++----------- .../ui/playwright/utils/initialSetup.ts | 46 +++++++++++++++++++ 2 files changed, 49 insertions(+), 30 deletions(-) create mode 100644 openmetadata-ui/src/main/resources/ui/playwright/utils/initialSetup.ts diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/auth.setup.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/auth.setup.ts index fc6b43f3614..8b08e62e4ff 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/auth.setup.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/auth.setup.ts @@ -10,43 +10,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Page, test as setup } from '@playwright/test'; -import { JWT_EXPIRY_TIME_MAP } from '../constant/login'; +import { test as setup } from '@playwright/test'; import { AdminClass } from '../support/user/AdminClass'; -import { getApiContext } from '../utils/common'; -import { updateJWTTokenExpiryTime } from '../utils/login'; -import { - updateDefaultDataConsumerPolicy, - updateDefaultOrganizationPolicy, -} from '../utils/permission'; -import { removeOrganizationPolicyAndRole } from '../utils/team'; +import { loginAsAdmin } from '../utils/initialSetup'; const adminFile = 'playwright/.auth/admin.json'; -const initialSetup = async (page: Page) => { - const { apiContext, afterAction } = await getApiContext(page); - // Update JWT expiry time to 4 hours - await updateJWTTokenExpiryTime(apiContext, JWT_EXPIRY_TIME_MAP['4 hours']); - // Remove organization policy and role - await removeOrganizationPolicyAndRole(apiContext); - // update default Organization policy - await updateDefaultOrganizationPolicy(apiContext); - // update default Data consumer policy - await updateDefaultDataConsumerPolicy(apiContext); - - await afterAction(); -}; - setup('authenticate as admin', async ({ page }) => { const admin = new AdminClass(); // login with admin user - await admin.login(page); - await page.waitForURL('**/my-data'); - await initialSetup(page); - await admin.logout(page); - await page.waitForURL('**/signin'); - await admin.login(page); - await page.waitForURL('**/my-data'); + await loginAsAdmin(page, admin); // End of authentication steps. await page.context().storageState({ path: adminFile }); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/utils/initialSetup.ts b/openmetadata-ui/src/main/resources/ui/playwright/utils/initialSetup.ts new file mode 100644 index 00000000000..778e4875f75 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/playwright/utils/initialSetup.ts @@ -0,0 +1,46 @@ +/* + * Copyright 2025 Collate. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Page } from '@playwright/test'; +import { JWT_EXPIRY_TIME_MAP } from '../constant/login'; +import { AdminClass } from '../support/user/AdminClass'; +import { getApiContext } from './common'; +import { updateJWTTokenExpiryTime } from './login'; +import { + updateDefaultDataConsumerPolicy, + updateDefaultOrganizationPolicy, +} from './permission'; +import { removeOrganizationPolicyAndRole } from './team'; + +const initialSetup = async (page: Page) => { + const { apiContext, afterAction } = await getApiContext(page); + // Update JWT expiry time to 4 hours + await updateJWTTokenExpiryTime(apiContext, JWT_EXPIRY_TIME_MAP['4 hours']); + // Remove organization policy and role + await removeOrganizationPolicyAndRole(apiContext); + // update default Organization policy + await updateDefaultOrganizationPolicy(apiContext); + // update default Data consumer policy + await updateDefaultDataConsumerPolicy(apiContext); + + await afterAction(); +}; + +export const loginAsAdmin = async (page: Page, admin: AdminClass) => { + await admin.login(page); + await page.waitForURL('**/my-data'); + await initialSetup(page); + await admin.logout(page); + await page.waitForURL('**/signin'); + await admin.login(page); + await page.waitForURL('**/my-data'); +};