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 <shailesh.parmar.webdev@gmail.com>
This commit is contained in:
Sweta Agarwalla 2025-01-06 13:58:13 +05:30 committed by GitHub
parent 3ad086159c
commit 0a1ab95f8b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 49 additions and 30 deletions

View File

@ -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 });

View File

@ -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');
};