From 6e6ad81091f072d2d69d62ab44c471fc9d49264f Mon Sep 17 00:00:00 2001 From: Muhammed Mustafa Date: Sat, 23 Sep 2023 13:06:19 +0530 Subject: [PATCH] fix: Removed test --- .../db/features/projectCollaboration.spec.ts | 204 ------------------ 1 file changed, 204 deletions(-) delete mode 100644 tests/playwright/tests/db/features/projectCollaboration.spec.ts diff --git a/tests/playwright/tests/db/features/projectCollaboration.spec.ts b/tests/playwright/tests/db/features/projectCollaboration.spec.ts deleted file mode 100644 index 0b5ab8c7c4..0000000000 --- a/tests/playwright/tests/db/features/projectCollaboration.spec.ts +++ /dev/null @@ -1,204 +0,0 @@ -import { Page, test } from '@playwright/test'; -import { DashboardPage } from '../../../pages/Dashboard'; -import setup, { unsetup } from '../../../setup'; -import { getDefaultPwd } from '../../../tests/utils/general'; - -import { Api } from 'nocodb-sdk'; -import { CollaborationPage } from '../../../pages/WorkspacePage/CollaborationPage'; -import { LoginPage } from '../../../pages/LoginPage'; -import { ProjectViewPage } from '../../../pages/Dashboard/ProjectView'; -import { AccountUsersPage } from '../../../pages/Account/Users'; -import { AccountPage } from '../../../pages/Account'; -import { isEE } from '../../../setup/db'; - -const roleDb = [ - { email: 'pjt_creator@nocodb.com', role: 'Creator' }, - { email: 'pjt_editor@nocodb.com', role: 'Editor' }, - { email: 'pjt_commenter@nocodb.com', role: 'Commenter' }, - { email: 'pjt_viewer@nocodb.com', role: 'Viewer' }, -]; - -test.describe('Project Collaboration', () => { - let dashboard: DashboardPage; - let accountsPage: AccountPage; - let collaborationPage: CollaborationPage; - let projectViewPage: ProjectViewPage; - let context: any; - let api: Api; - - test.skip(() => isEE()); - - test.beforeEach(async ({ page }) => { - context = await setup({ page, isEmptyProject: false }); - dashboard = new DashboardPage(page, context.project); - accountsPage = new AccountPage(page); - projectViewPage = dashboard.projectView; - - api = new Api({ - baseURL: `http://localhost:8080/`, - headers: { - 'xc-auth': context.token, - }, - }); - - for (let i = 0; i < roleDb.length; i++) { - try { - await api.auth.signup({ - email: roleDb[i].email, - password: getDefaultPwd(), - }); - } catch (e) { - // ignore error even if user already exists - } - } - }); - - test.afterEach(async () => { - await unsetup(context); - }); - - const projectCollabVerify = async ( - page: Page, - user: { - email: string; - role: string; - } - ) => { - await dashboard.leftSidebar.clickTeamAndSettings(); - - // add all users as WS viewers - - await accountsPage.users.invite({ - email: user.email, - role: 'viewer', - }); - - await dashboard.rootPage.goBack(); - - await dashboard.treeView.openProject({ title: context.project.title, context }); - - // tab access validation - await projectViewPage.verifyAccess('Owner'); - - await projectViewPage.tab_accessSettings.click(); - - // update roles - - await projectViewPage.accessSettings.setRole(user.email, user.role); - - await dashboard.signOut(); - - const loginPage = new LoginPage(page); - await loginPage.signIn({ - email: user.email, - password: getDefaultPwd(), - withoutPrefix: true, - skipReload: true, - }); - - await dashboard.rootPage.waitForTimeout(500); - await dashboard.projectView.verifyAccess(user.role); - - await dashboard.treeView.openTable({ title: 'Country' }); - await dashboard.treeView.validateRoleAccess({ - role: user.role, - projectTitle: context.project.title, - tableTitle: 'Country', - context, - }); - await dashboard.viewSidebar.validateRoleAccess({ role: user.role }); - - await dashboard.grid.verifyRoleAccess({ role: user.role }); - - await dashboard.grid.openExpandedRow({ index: 0 }); - await dashboard.expandedForm.verifyRoleAccess({ role: user.role }); - - await dashboard.sidebar.projectNode.click({ - projectTitle: context.project.title, - }); - }; - - test('Project role access validation: Creator', async ({ page }) => { - await projectCollabVerify(page, roleDb[0]); - - const projectNode = dashboard.sidebar.projectNode; - await projectNode.verifyTableAddBtn({ projectTitle: context.project.title, visible: true }); - - await projectNode.clickOptions({ projectTitle: context.project.title }); - await projectNode.verifyProjectOptions({ - projectTitle: context.project.title, - deleteVisible: false, - duplicateVisible: true, - importVisible: true, - renameVisible: true, - restApisVisible: true, - settingsVisible: true, - starredVisible: false, - relationsVisible: true, - copyProjectInfoVisible: true, - }); - }); - - test('Project role access validation: Editor', async ({ page }) => { - await projectCollabVerify(page, roleDb[1]); - - const projectNode = dashboard.sidebar.projectNode; - await projectNode.verifyTableAddBtn({ projectTitle: context.project.title, visible: false }); - - await projectNode.clickOptions({ projectTitle: context.project.title }); - await projectNode.verifyProjectOptions({ - projectTitle: context.project.title, - deleteVisible: false, - duplicateVisible: false, - importVisible: false, - renameVisible: false, - restApisVisible: true, - settingsVisible: false, - starredVisible: false, - relationsVisible: true, - copyProjectInfoVisible: true, - }); - }); - - test('Project role access validation: Commentor', async ({ page }) => { - await projectCollabVerify(page, roleDb[2]); - - const projectNode = dashboard.sidebar.projectNode; - await projectNode.verifyTableAddBtn({ projectTitle: context.project.title, visible: false }); - - await projectNode.clickOptions({ projectTitle: context.project.title }); - await projectNode.verifyProjectOptions({ - projectTitle: context.project.title, - deleteVisible: false, - duplicateVisible: false, - importVisible: false, - renameVisible: false, - restApisVisible: true, - settingsVisible: false, - starredVisible: false, - relationsVisible: true, - copyProjectInfoVisible: true, - }); - }); - - test('Project role access validation: Viewer', async ({ page }) => { - await projectCollabVerify(page, roleDb[3]); - - const projectNode = dashboard.sidebar.projectNode; - await projectNode.verifyTableAddBtn({ projectTitle: context.project.title, visible: false }); - - await projectNode.clickOptions({ projectTitle: context.project.title }); - await projectNode.verifyProjectOptions({ - projectTitle: context.project.title, - deleteVisible: false, - duplicateVisible: false, - importVisible: false, - renameVisible: false, - restApisVisible: true, - settingsVisible: false, - starredVisible: false, - relationsVisible: true, - copyProjectInfoVisible: true, - }); - }); -});