mirror of
https://github.com/lingble/twenty.git
synced 2025-11-20 07:54:52 +00:00
56 lines
1.7 KiB
TypeScript
56 lines
1.7 KiB
TypeScript
import { Locator, Page } from '@playwright/test';
|
|
|
|
export class ExperienceSection {
|
|
private readonly lightThemeButton: Locator;
|
|
private readonly darkThemeButton: Locator;
|
|
private readonly timezoneDropdown: Locator;
|
|
private readonly dateFormatDropdown: Locator;
|
|
private readonly timeFormatDropdown: Locator;
|
|
private readonly searchInput: Locator;
|
|
|
|
constructor(public readonly page: Page) {
|
|
this.page = page;
|
|
this.lightThemeButton = page.getByText('AaLight'); // it works
|
|
this.darkThemeButton = page.getByText('AaDark');
|
|
this.timezoneDropdown = page.locator(
|
|
'//span[contains(., "Time zone")]/../div/div/div',
|
|
);
|
|
this.dateFormatDropdown = page.locator(
|
|
'//span[contains(., "Date format")]/../div/div/div',
|
|
);
|
|
this.timeFormatDropdown = page.locator(
|
|
'//span[contains(., "Time format")]/../div/div/div',
|
|
);
|
|
this.searchInput = page.getByPlaceholder('Search');
|
|
}
|
|
|
|
async changeThemeToLight() {
|
|
await this.lightThemeButton.click();
|
|
}
|
|
|
|
async changeThemeToDark() {
|
|
await this.darkThemeButton.click();
|
|
}
|
|
|
|
async selectTimeZone(timezone: string) {
|
|
await this.timezoneDropdown.click();
|
|
await this.page.getByText(timezone, { exact: true }).click();
|
|
}
|
|
|
|
async selectTimeZoneWithSearch(timezone: string) {
|
|
await this.timezoneDropdown.click();
|
|
await this.searchInput.fill(timezone);
|
|
await this.page.getByText(timezone, { exact: true }).click();
|
|
}
|
|
|
|
async selectDateFormat(dateFormat: string) {
|
|
await this.dateFormatDropdown.click();
|
|
await this.page.getByText(dateFormat, { exact: true }).click();
|
|
}
|
|
|
|
async selectTimeFormat(timeFormat: string) {
|
|
await this.timeFormatDropdown.click();
|
|
await this.page.getByText(timeFormat, { exact: true }).click();
|
|
}
|
|
}
|