Skip to content

Commit

Permalink
Add utils for login as admin (#19223)
Browse files Browse the repository at this point in the history
* add utils for login as admin

* update as per comments

* fix java checkstyle issue

---------

Co-authored-by: Shailesh Parmar <shailesh.parmar.webdev@gmail.com>
  • Loading branch information
sweta1308 and ShaileshParmar11 authored Jan 6, 2025
1 parent 3ad0861 commit 0a1ab95
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 30 deletions.
33 changes: 3 additions & 30 deletions openmetadata-ui/src/main/resources/ui/playwright/e2e/auth.setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 });
Expand Down
Original file line number Diff line number Diff line change
@@ -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');
};

0 comments on commit 0a1ab95

Please sign in to comment.