Browse Source

test(playwrite): add tests

Signed-off-by: Pranav C <pranavxc@gmail.com>
pull/4134/head
Pranav C 2 years ago
parent
commit
2b2009376d
  1. 0
      packages/nc-gui/tests/playwright/pages/Account/AppStore.ts
  2. 0
      packages/nc-gui/tests/playwright/pages/Account/PasswordReset.ts
  3. 0
      packages/nc-gui/tests/playwright/pages/Account/Settings.ts
  4. 131
      packages/nc-gui/tests/playwright/pages/Account/Token.ts
  5. 135
      packages/nc-gui/tests/playwright/pages/Account/Users.ts
  6. 48
      packages/nc-gui/tests/playwright/pages/Account/index.ts
  7. 139
      packages/nc-gui/tests/playwright/tests/accountTokenManagement.spec.ts
  8. 140
      packages/nc-gui/tests/playwright/tests/accountUserManagement.spec.ts
  9. 137
      packages/nc-gui/tests/playwright/tests/accountUserSettings.spec.ts

0
packages/nc-gui/tests/playwright/pages/Account/AppStore.ts

0
packages/nc-gui/tests/playwright/pages/Account/PasswordReset.ts

0
packages/nc-gui/tests/playwright/pages/Account/Settings.ts

131
packages/nc-gui/tests/playwright/pages/Account/Token.ts

@ -0,0 +1,131 @@
import { Locator } from '@playwright/test';
import BasePage from '../Base';
import { AccountPage } from './index';
export class AccountTokenPage extends BasePage {
readonly createBtn: Locator;
readonly createModal: Locator;
private accountPage: AccountPage;
constructor(accountPage: AccountPage) {
super(accountPage.rootPage);
this.accountPage = accountPage;
this.createBtn = this.get().locator(`[data-cy="nc-token-create"]`);
this.createModal = accountPage.rootPage.locator(`.nc-modal-generate-token`);
}
async goto() {
await this.rootPage.goto('/?dummy=users#/account/tokens');
}
get() {
return this.accountPage.get().locator(`[data-cy="nc-token-list"]`);
}
async createToken({ description }: { description:string }) {
await this.createBtn.click();
await this.createModal.locator(`input[placeholder="Description"]`).fill(description);
await this.createModal.locator(`[data-cy="nc-token-modal-save"]`).click();
await this.verifyToast({ message: 'Token generated successfully' });
// return await this.inviteTeamModal.locator(`.ant-alert-message`).innerText();
}
//
// prefixEmail(email: string) {
// const parallelId = process.env.TEST_PARALLEL_INDEX ?? '0';
// return `nc_test_${parallelId}_${email}`;
// }
//
// async closeInvite() {
// // two btn-icon-only in invite modal: close & copy url
// await this.inviteTeamModal.locator(`button.ant-btn-icon-only:visible`).first().click();
// }
//
// getUserRow({ email: _email }: { email: string }) {
// const email = this.prefixEmail(_email);
// return this.get().locator(`tr:has-text("${email}")`);
// }
//
// async updateRole({ email: _email, role }: { email: string; role: string }) {
// const email = this.prefixEmail(_email);
// const userRow = this.getUserRow({ email });
// await userRow.locator(`.nc-user-roles`).click();
// await this.rootPage.locator(`.nc-role-option:has-text("${role}")`).click();
// await this.verifyToast({ message: 'Successfully updated the user details' });
// }
/*
getSharedBaseSubModal() {
return this.rootPage.locator(`[data-nc="nc-share-base-sub-modal"]`);
}
async invite({ email, role }: { email: string; role: string }) {
email = this.prefixEmail(email);
await this.inviteTeamBtn.click();
await this.inviteTeamModal.locator(`input[placeholder="E-mail"]`).fill(email);
await this.inviteTeamModal.locator(`.nc-user-roles`).click();
const userRoleModal = this.rootPage.locator(`.nc-dropdown-user-role`);
await userRoleModal.locator(`.nc-role-option:has-text("${role}")`).click();
await this.inviteTeamModal.locator(`button:has-text("Invite")`).click();
await this.verifyToast({ message: 'Successfully updated the user details' });
return await this.inviteTeamModal.locator(`.ant-alert-message`).innerText();
}
async closeInvite() {
// two btn-icon-only in invite modal: close & copy url
await this.inviteTeamModal.locator(`button.ant-btn-icon-only:visible`).first().click();
}
async inviteMore() {
await this.inviteTeamModal.locator(`button:has-text("Invite More")`).click();
}
async toggleSharedBase({ toggle }: { toggle: boolean }) {
const toggleBtn = await this.getSharedBaseSubModal().locator(`.nc-disable-shared-base`);
const toggleBtnText = await toggleBtn.first().innerText();
const disabledBase = toggleBtnText.includes('Disable');
if (disabledBase) {
if (toggle) {
// if share base was disabled && request was to enable
await toggleBtn.click();
const modal = await this.rootPage.locator(`.nc-dropdown-shared-base-toggle`);
await modal.locator(`.ant-dropdown-menu-title-content`).click();
}
} else {
if (!toggle) {
// if share base was enabled && request was to disable
await toggleBtn.click();
const modal = await this.rootPage.locator(`.nc-dropdown-shared-base-toggle`);
await modal.locator(`.ant-dropdown-menu-title-content`).click();
}
}
}
async getSharedBaseUrl() {
const url = await this.getSharedBaseSubModal().locator(`.nc-url:visible`).innerText();
return url;
}
async sharedBaseActions({ action }: { action: string }) {
const actionMenu = ['reload', 'copy url', 'open tab', 'copy embed code'];
const index = actionMenu.indexOf(action);
await this.getSharedBaseSubModal().locator(`button.ant-btn-icon-only`).nth(index).click();
}
async sharedBaseRole({ role }: { role: string }) {
// editor | viewer
// await this.getSharedBaseSubModal()
// .locator(`.nc-shared-base-role`)
// .waitFor();
await this.getSharedBaseSubModal().locator(`.nc-shared-base-role:visible`).click();
const userRoleModal = await this.rootPage.locator(`.nc-dropdown-share-base-role:visible`);
await userRoleModal.locator(`.ant-select-item-option-content:has-text("${role}"):visible`).click();
}
*/
}

135
packages/nc-gui/tests/playwright/pages/Account/Users.ts

@ -0,0 +1,135 @@
import { Locator } from '@playwright/test';
import BasePage from '../Base';
import { AccountPage } from './index';
export class AccountUsersPage extends BasePage {
readonly inviteTeamBtn: Locator;
readonly inviteTeamModal: Locator;
private accountPage: AccountPage;
constructor(accountPage: AccountPage) {
super(accountPage.rootPage);
this.accountPage = accountPage;
this.inviteTeamBtn = this.get().locator(`[data-cy="nc-super-user-invite"]`);
this.inviteTeamModal = accountPage.rootPage.locator(`.nc-modal-invite-user`);
}
async goto() {
await this.rootPage.goto('/?dummy=users#/account/users/list');
}
get() {
return this.accountPage.get().locator(`[data-cy="nc-super-user-list"]`);
}
async invite({ email: _email, role }: { email: string; role: string }) {
const email = this.prefixEmail(_email);
await this.inviteTeamBtn.click();
await this.inviteTeamModal.locator(`input[placeholder="E-mail"]`).fill(email);
await this.inviteTeamModal.locator(`.nc-user-roles`).click();
const userRoleModal = this.rootPage.locator(`.nc-dropdown-user-role`);
await userRoleModal.locator(`.nc-role-option:has-text("${role}")`).click();
await this.inviteTeamModal.locator(`button:has-text("Invite")`).click();
await this.verifyToast({ message: 'Successfully added user' });
return await this.inviteTeamModal.locator(`.ant-alert-message`).innerText();
}
prefixEmail(email: string) {
const parallelId = process.env.TEST_PARALLEL_INDEX ?? '0';
return `nc_test_${parallelId}_${email}`;
}
async closeInvite() {
// two btn-icon-only in invite modal: close & copy url
await this.inviteTeamModal.locator(`button.ant-btn-icon-only:visible`).first().click();
}
getUserRow({ email: _email }: { email: string }) {
const email = this.prefixEmail(_email);
return this.get().locator(`tr:has-text("${email}")`);
}
async updateRole({ email: _email, role }: { email: string; role: string }) {
const email = this.prefixEmail(_email);
const userRow = this.getUserRow({ email });
await userRow.locator(`.nc-user-roles`).click();
await this.rootPage.locator(`.nc-role-option:has-text("${role}")`).click();
await this.verifyToast({ message: 'Successfully updated the user details' });
}
/*
getSharedBaseSubModal() {
return this.rootPage.locator(`[data-nc="nc-share-base-sub-modal"]`);
}
async invite({ email, role }: { email: string; role: string }) {
email = this.prefixEmail(email);
await this.inviteTeamBtn.click();
await this.inviteTeamModal.locator(`input[placeholder="E-mail"]`).fill(email);
await this.inviteTeamModal.locator(`.nc-user-roles`).click();
const userRoleModal = this.rootPage.locator(`.nc-dropdown-user-role`);
await userRoleModal.locator(`.nc-role-option:has-text("${role}")`).click();
await this.inviteTeamModal.locator(`button:has-text("Invite")`).click();
await this.verifyToast({ message: 'Successfully updated the user details' });
return await this.inviteTeamModal.locator(`.ant-alert-message`).innerText();
}
async closeInvite() {
// two btn-icon-only in invite modal: close & copy url
await this.inviteTeamModal.locator(`button.ant-btn-icon-only:visible`).first().click();
}
async inviteMore() {
await this.inviteTeamModal.locator(`button:has-text("Invite More")`).click();
}
async toggleSharedBase({ toggle }: { toggle: boolean }) {
const toggleBtn = await this.getSharedBaseSubModal().locator(`.nc-disable-shared-base`);
const toggleBtnText = await toggleBtn.first().innerText();
const disabledBase = toggleBtnText.includes('Disable');
if (disabledBase) {
if (toggle) {
// if share base was disabled && request was to enable
await toggleBtn.click();
const modal = await this.rootPage.locator(`.nc-dropdown-shared-base-toggle`);
await modal.locator(`.ant-dropdown-menu-title-content`).click();
}
} else {
if (!toggle) {
// if share base was enabled && request was to disable
await toggleBtn.click();
const modal = await this.rootPage.locator(`.nc-dropdown-shared-base-toggle`);
await modal.locator(`.ant-dropdown-menu-title-content`).click();
}
}
}
async getSharedBaseUrl() {
const url = await this.getSharedBaseSubModal().locator(`.nc-url:visible`).innerText();
return url;
}
async sharedBaseActions({ action }: { action: string }) {
const actionMenu = ['reload', 'copy url', 'open tab', 'copy embed code'];
const index = actionMenu.indexOf(action);
await this.getSharedBaseSubModal().locator(`button.ant-btn-icon-only`).nth(index).click();
}
async sharedBaseRole({ role }: { role: string }) {
// editor | viewer
// await this.getSharedBaseSubModal()
// .locator(`.nc-shared-base-role`)
// .waitFor();
await this.getSharedBaseSubModal().locator(`.nc-shared-base-role:visible`).click();
const userRoleModal = await this.rootPage.locator(`.nc-dropdown-share-base-role:visible`);
await userRoleModal.locator(`.ant-select-item-option-content:has-text("${role}"):visible`).click();
}
*/
}

48
packages/nc-gui/tests/playwright/pages/Account/index.ts

@ -0,0 +1,48 @@
import { Page } from '@playwright/test'
import BasePage from '../Base';
export enum SettingTab {
TeamAuth = 'teamAndAuth',
AppStore = 'appStore',
ProjectMetadata = 'projMetaData',
Audit = 'audit',
}
export enum SettingsSubTab {
ERD = 'erd',
Miscellaneous = 'misc',
ACL = 'acl',
}
export class AccountPage extends BasePage {
// private readonly dashboard: DashboardPage;
// readonly audit: AuditSettingsPage;
// readonly appStore: AppStoreSettingsPage;
// readonly metaData: MetaDataPage;
// readonly miscellaneous: MiscSettingsPage;
// readonly erd: SettingsErdPage;
// readonly teams: TeamsPage;
// readonly acl: AclPage;
constructor(page: Page) {
super(page);
}
get() {
return this.rootPage.locator('body');
}
// async selectTab({ tab, subTab }: { tab: SettingTab; subTab?: SettingsSubTab }) {
// await this.get().locator(`li[data-menu-id="${tab}"]`).click();
// if (subTab) await this.get().locator(`li[data-menu-id="${subTab}"]`).click();
// }
//
// async selectSubTab({ subTab }: { subTab: SettingsSubTab }) {
// await this.get().locator(`li[data-menu-id="${subTab}"]`).click();
// }
//
// async close() {
// await this.get().locator('[data-nc="settings-modal-close-button"]').click();
// await this.get().waitFor({ state: 'hidden' });
// }
}

139
packages/nc-gui/tests/playwright/tests/accountTokenManagement.spec.ts

@ -0,0 +1,139 @@
import { test } from '@playwright/test'
import { AccountPage } from '../pages/Account'
import { AccountTokenPage } from '../pages/Account/Token'
import { AccountUsersPage } from '../pages/Account/Users'
import setup from '../setup'
const roleDb = [
{ email: 'creator@nocodb.com', role: 'Organization level creator', url: '' },
{ email: 'viewer@nocodb.com', role: 'Organization level viewer', url: '' },
]
test.describe('User roles', () => {
// let dashboard: DashboardPage;
// let settings: SettingsPage;
// let signupPage: SignupPage;
let accountTokenPage: AccountTokenPage
let accountPage: AccountPage
let context: any
test.beforeEach(async ({ page }) => {
context = await setup({ page })
accountPage = new AccountPage(page)
accountTokenPage = new AccountTokenPage(accountPage)
})
test('Invite user', async () => {
test.slow()
await accountTokenPage.goto()
await accountTokenPage.createToken({description: 'test token'})
// for (let i = 0; i < roleDb.length; i++) {
// roleDb[i].url = await accountTokenPage.invite({
// email: roleDb[i].email,
// role: roleDb[i].role,
// });
// await accountTokenPage.closeInvite();
// }
// for (let i = 0; i < roleDb.length; i++) {
// await accountTokenPage.getUserRow({
// email: roleDb[i].email,
// })
// }
// close 'Team & Auth' tab
// await dashboard.gotoSettings();
// await settings.selectTab({ tab: SettingTab.TeamAuth });
// for (let i = 0; i < roleDb.length; i++) {
// roleDb[i].url = await settings.teams.invite({
// email: roleDb[i].email,
// role: roleDb[i].role,
// });
// await settings.teams.closeInvite();
// }
// await settings.close();
//
// // configure access control
// await dashboard.gotoSettings();
// await settings.selectTab({
// tab: SettingTab.ProjectMetadata,
// subTab: SettingsSubTab.ACL,
// });
// await settings.acl.toggle({ table: 'Language', role: 'editor' });
// await settings.acl.toggle({ table: 'Language', role: 'commenter' });
// await settings.acl.toggle({ table: 'Language', role: 'viewer' });
// await settings.acl.toggle({ table: 'CustomerList', role: 'editor' });
// await settings.acl.toggle({ table: 'CustomerList', role: 'commenter' });
// await settings.acl.toggle({ table: 'CustomerList', role: 'viewer' });
// await settings.acl.save();
// await settings.close();
//
// // Role test
// for (let i = 0; i < roleDb.length; i++) {
// await roleTest(i);
// }
})
//
// async function roleTest(roleIdx: number) {
// await roleSignup(roleIdx);
// await dashboard.validateProjectMenu({
// role: roleDb[roleIdx].role,
// });
//
// await dashboard.treeView.openTable({ title: 'Country' });
//
// await dashboard.viewSidebar.validateRoleAccess({
// role: roleDb[roleIdx].role,
// });
//
// await dashboard.grid.toolbar.validateRoleAccess({
// role: roleDb[roleIdx].role,
// });
//
// await dashboard.treeView.validateRoleAccess({
// role: roleDb[roleIdx].role,
// });
//
// await dashboard.grid.validateRoleAccess({
// role: roleDb[roleIdx].role,
// });
//
// await dashboard.grid.openExpandedRow({ index: 0 });
// await dashboard.expandedForm.validateRoleAccess({
// role: roleDb[roleIdx].role,
// });
//
// // Access control validation
// await dashboard.treeView.verifyTable({
// title: 'Language',
// exists: roleDb[roleIdx].role === 'creator' ? true : false,
// });
// await dashboard.treeView.verifyTable({
// title: 'CustomerList',
// exists: roleDb[roleIdx].role === 'creator' ? true : false,
// });
// }
//
// async function roleSignup(roleIdx: number) {
// await dashboard.signOut();
//
// await dashboard.rootPage.goto(roleDb[roleIdx].url);
// await signupPage.signUp({
// email: roleDb[roleIdx].email,
// password: 'Password123.',
// });
//
// await projectsPage.openProject({
// title: context.project.title,
// waitForAuthTab: roleDb[roleIdx].role === 'creator',
// withoutPrefix: true,
// });
//
// // close 'Team & Auth' tab
// if (roleDb[roleIdx].role === 'creator') {
// await dashboard.closeTab({ title: 'Team & Auth' });
// }
// }
})

140
packages/nc-gui/tests/playwright/tests/accountUserManagement.spec.ts

@ -0,0 +1,140 @@
import { test } from '@playwright/test'
import { AccountPage } from '../pages/Account'
import { AccountUsersPage } from '../pages/Account/Users'
import { DashboardPage } from '../pages/Dashboard'
import setup from '../setup'
import { SettingsPage, SettingsSubTab, SettingTab } from '../pages/Dashboard/Settings'
import { SignupPage } from '../pages/SignupPage'
const roleDb = [
{ email: 'creator@nocodb.com', role: 'Organization level creator', url: '' },
{ email: 'viewer@nocodb.com', role: 'Organization level viewer', url: '' },
]
test.describe('User roles', () => {
// let dashboard: DashboardPage;
// let settings: SettingsPage;
// let signupPage: SignupPage;
let accountUsersPage: AccountUsersPage
let accountPage: AccountPage
let context: any
test.beforeEach(async ({ page }) => {
context = await setup({ page })
accountPage = new AccountPage(page)
accountUsersPage = new AccountUsersPage(accountPage)
})
test.only('Invite user', async () => {
test.slow()
await accountUsersPage.goto()
for (let i = 0; i < roleDb.length; i++) {
roleDb[i].url = await accountUsersPage.invite({
email: roleDb[i].email,
role: roleDb[i].role,
});
await accountUsersPage.closeInvite();
}
for (let i = 0; i < roleDb.length; i++) {
await accountUsersPage.updateRole({
email: roleDb[i].email,
role: 'Organization level viewer',
})
}
// close 'Team & Auth' tab
// await dashboard.gotoSettings();
// await settings.selectTab({ tab: SettingTab.TeamAuth });
// for (let i = 0; i < roleDb.length; i++) {
// roleDb[i].url = await settings.teams.invite({
// email: roleDb[i].email,
// role: roleDb[i].role,
// });
// await settings.teams.closeInvite();
// }
// await settings.close();
//
// // configure access control
// await dashboard.gotoSettings();
// await settings.selectTab({
// tab: SettingTab.ProjectMetadata,
// subTab: SettingsSubTab.ACL,
// });
// await settings.acl.toggle({ table: 'Language', role: 'editor' });
// await settings.acl.toggle({ table: 'Language', role: 'commenter' });
// await settings.acl.toggle({ table: 'Language', role: 'viewer' });
// await settings.acl.toggle({ table: 'CustomerList', role: 'editor' });
// await settings.acl.toggle({ table: 'CustomerList', role: 'commenter' });
// await settings.acl.toggle({ table: 'CustomerList', role: 'viewer' });
// await settings.acl.save();
// await settings.close();
//
// // Role test
// for (let i = 0; i < roleDb.length; i++) {
// await roleTest(i);
// }
})
//
// async function roleTest(roleIdx: number) {
// await roleSignup(roleIdx);
// await dashboard.validateProjectMenu({
// role: roleDb[roleIdx].role,
// });
//
// await dashboard.treeView.openTable({ title: 'Country' });
//
// await dashboard.viewSidebar.validateRoleAccess({
// role: roleDb[roleIdx].role,
// });
//
// await dashboard.grid.toolbar.validateRoleAccess({
// role: roleDb[roleIdx].role,
// });
//
// await dashboard.treeView.validateRoleAccess({
// role: roleDb[roleIdx].role,
// });
//
// await dashboard.grid.validateRoleAccess({
// role: roleDb[roleIdx].role,
// });
//
// await dashboard.grid.openExpandedRow({ index: 0 });
// await dashboard.expandedForm.validateRoleAccess({
// role: roleDb[roleIdx].role,
// });
//
// // Access control validation
// await dashboard.treeView.verifyTable({
// title: 'Language',
// exists: roleDb[roleIdx].role === 'creator' ? true : false,
// });
// await dashboard.treeView.verifyTable({
// title: 'CustomerList',
// exists: roleDb[roleIdx].role === 'creator' ? true : false,
// });
// }
//
// async function roleSignup(roleIdx: number) {
// await dashboard.signOut();
//
// await dashboard.rootPage.goto(roleDb[roleIdx].url);
// await signupPage.signUp({
// email: roleDb[roleIdx].email,
// password: 'Password123.',
// });
//
// await projectsPage.openProject({
// title: context.project.title,
// waitForAuthTab: roleDb[roleIdx].role === 'creator',
// withoutPrefix: true,
// });
//
// // close 'Team & Auth' tab
// if (roleDb[roleIdx].role === 'creator') {
// await dashboard.closeTab({ title: 'Team & Auth' });
// }
// }
})

137
packages/nc-gui/tests/playwright/tests/accountUserSettings.spec.ts

@ -0,0 +1,137 @@
import { test } from '@playwright/test'
import { AccountPage } from '../pages/Account'
import { AccountUsersPage } from '../pages/Account/Users'
import setup from '../setup'
const roleDb = [
{ email: 'creator@nocodb.com', role: 'Organization level creator', url: '' },
{ email: 'viewer@nocodb.com', role: 'Organization level viewer', url: '' },
]
test.describe('User roles', () => {
// let dashboard: DashboardPage;
// let settings: SettingsPage;
// let signupPage: SignupPage;
let accountUsersPage: AccountUsersPage
let accountPage: AccountPage
let context: any
test.beforeEach(async ({ page }) => {
context = await setup({ page })
accountPage = new AccountPage(page)
accountUsersPage = new AccountUsersPage(accountPage)
})
test('Invite user', async () => {
test.slow()
await accountUsersPage.goto()
for (let i = 0; i < roleDb.length; i++) {
roleDb[i].url = await accountUsersPage.invite({
email: roleDb[i].email,
role: roleDb[i].role,
});
await accountUsersPage.closeInvite();
}
for (let i = 0; i < roleDb.length; i++) {
await accountUsersPage.getUserRow({
email: roleDb[i].email,
})
}
// close 'Team & Auth' tab
// await dashboard.gotoSettings();
// await settings.selectTab({ tab: SettingTab.TeamAuth });
// for (let i = 0; i < roleDb.length; i++) {
// roleDb[i].url = await settings.teams.invite({
// email: roleDb[i].email,
// role: roleDb[i].role,
// });
// await settings.teams.closeInvite();
// }
// await settings.close();
//
// // configure access control
// await dashboard.gotoSettings();
// await settings.selectTab({
// tab: SettingTab.ProjectMetadata,
// subTab: SettingsSubTab.ACL,
// });
// await settings.acl.toggle({ table: 'Language', role: 'editor' });
// await settings.acl.toggle({ table: 'Language', role: 'commenter' });
// await settings.acl.toggle({ table: 'Language', role: 'viewer' });
// await settings.acl.toggle({ table: 'CustomerList', role: 'editor' });
// await settings.acl.toggle({ table: 'CustomerList', role: 'commenter' });
// await settings.acl.toggle({ table: 'CustomerList', role: 'viewer' });
// await settings.acl.save();
// await settings.close();
//
// // Role test
// for (let i = 0; i < roleDb.length; i++) {
// await roleTest(i);
// }
})
//
// async function roleTest(roleIdx: number) {
// await roleSignup(roleIdx);
// await dashboard.validateProjectMenu({
// role: roleDb[roleIdx].role,
// });
//
// await dashboard.treeView.openTable({ title: 'Country' });
//
// await dashboard.viewSidebar.validateRoleAccess({
// role: roleDb[roleIdx].role,
// });
//
// await dashboard.grid.toolbar.validateRoleAccess({
// role: roleDb[roleIdx].role,
// });
//
// await dashboard.treeView.validateRoleAccess({
// role: roleDb[roleIdx].role,
// });
//
// await dashboard.grid.validateRoleAccess({
// role: roleDb[roleIdx].role,
// });
//
// await dashboard.grid.openExpandedRow({ index: 0 });
// await dashboard.expandedForm.validateRoleAccess({
// role: roleDb[roleIdx].role,
// });
//
// // Access control validation
// await dashboard.treeView.verifyTable({
// title: 'Language',
// exists: roleDb[roleIdx].role === 'creator' ? true : false,
// });
// await dashboard.treeView.verifyTable({
// title: 'CustomerList',
// exists: roleDb[roleIdx].role === 'creator' ? true : false,
// });
// }
//
// async function roleSignup(roleIdx: number) {
// await dashboard.signOut();
//
// await dashboard.rootPage.goto(roleDb[roleIdx].url);
// await signupPage.signUp({
// email: roleDb[roleIdx].email,
// password: 'Password123.',
// });
//
// await projectsPage.openProject({
// title: context.project.title,
// waitForAuthTab: roleDb[roleIdx].role === 'creator',
// withoutPrefix: true,
// });
//
// // close 'Team & Auth' tab
// if (roleDb[roleIdx].role === 'creator') {
// await dashboard.closeTab({ title: 'Team & Auth' });
// }
// }
})
Loading…
Cancel
Save