mirror of
https://github.com/twentyhq/twenty.git
synced 2026-01-26 16:50:09 -05:00
116 lines
3.2 KiB
TypeScript
116 lines
3.2 KiB
TypeScript
import { Locator, Page } from '@playwright/test';
|
|
|
|
export class LeftMenu {
|
|
private readonly workspaceDropdown: Locator;
|
|
private readonly leftMenu: Locator;
|
|
private readonly searchSubTab: Locator;
|
|
private readonly settingsTab: Locator;
|
|
private readonly peopleTab: Locator;
|
|
private readonly companiesTab: Locator;
|
|
private readonly opportunitiesTab: Locator;
|
|
private readonly opportunitiesTabAll: Locator;
|
|
private readonly opportunitiesTabByStage: Locator;
|
|
private readonly tasksTab: Locator;
|
|
private readonly tasksTabAll: Locator;
|
|
private readonly tasksTabByStatus: Locator;
|
|
private readonly notesTab: Locator;
|
|
private readonly rocketsTab: Locator;
|
|
private readonly workflowsTab: Locator;
|
|
|
|
constructor(public readonly page: Page) {
|
|
this.page = page;
|
|
this.workspaceDropdown = page.getByTestId('workspace-dropdown');
|
|
this.leftMenu = page.getByRole('button').first();
|
|
this.searchSubTab = page.getByText('Search');
|
|
this.settingsTab = page.getByRole('link', { name: 'Settings' });
|
|
this.peopleTab = page.getByRole('link', { name: 'People' });
|
|
this.companiesTab = page.getByRole('link', { name: 'Companies' });
|
|
this.opportunitiesTab = page.getByRole('link', { name: 'Opportunities' });
|
|
this.opportunitiesTabAll = page.getByRole('link', {
|
|
name: 'All',
|
|
exact: true,
|
|
});
|
|
this.opportunitiesTabByStage = page.getByRole('link', { name: 'By Stage' });
|
|
this.tasksTab = page.getByRole('link', { name: 'Tasks' });
|
|
this.tasksTabAll = page.getByRole('link', { name: 'All tasks' });
|
|
this.tasksTabByStatus = page.getByRole('link', { name: 'Notes' });
|
|
this.notesTab = page.getByRole('link', { name: 'Notes' });
|
|
this.rocketsTab = page.getByRole('link', { name: 'Rockets' });
|
|
this.workflowsTab = page.getByRole('link', { name: 'Workflows' });
|
|
}
|
|
|
|
async selectWorkspace(workspaceName: string) {
|
|
await this.workspaceDropdown.click();
|
|
await this.page
|
|
.getByTestId('tooltip')
|
|
.filter({ hasText: workspaceName })
|
|
.click();
|
|
}
|
|
|
|
async changeLeftMenu() {
|
|
await this.leftMenu.click();
|
|
}
|
|
|
|
async openSearchTab() {
|
|
await this.searchSubTab.click();
|
|
}
|
|
|
|
async goToSettings() {
|
|
await this.settingsTab.click();
|
|
}
|
|
|
|
async goToPeopleTab() {
|
|
await this.peopleTab.click();
|
|
}
|
|
|
|
async goToCompaniesTab() {
|
|
await this.companiesTab.click();
|
|
}
|
|
|
|
async goToOpportunitiesTab() {
|
|
await this.opportunitiesTab.click();
|
|
}
|
|
|
|
async goToOpportunitiesTableView() {
|
|
await this.opportunitiesTabAll.click();
|
|
}
|
|
|
|
async goToOpportunitiesKanbanView() {
|
|
await this.opportunitiesTabByStage.click();
|
|
}
|
|
|
|
async goToTasksTab() {
|
|
await this.tasksTab.click();
|
|
}
|
|
|
|
async goToTasksTableView() {
|
|
await this.tasksTabAll.click();
|
|
}
|
|
|
|
async goToTasksKanbanView() {
|
|
await this.tasksTabByStatus.click();
|
|
}
|
|
|
|
async goToNotesTab() {
|
|
await this.notesTab.click();
|
|
}
|
|
|
|
async goToRocketsTab() {
|
|
await this.rocketsTab.click();
|
|
}
|
|
|
|
async goToWorkflowsTab() {
|
|
await this.workflowsTab.click();
|
|
}
|
|
|
|
async goToCustomObject(customObjectName: string) {
|
|
await this.page.getByRole('link', { name: customObjectName }).click();
|
|
}
|
|
|
|
async goToCustomObjectView(name: string) {
|
|
await this.page.getByRole('link', { name: name }).click();
|
|
}
|
|
}
|
|
|
|
export default LeftMenu;
|