|
|
|
import BasePage from '../../../Base';
|
|
|
|
import { ToolbarPage } from './index';
|
|
|
|
import { getTextExcludeIconText } from '../../../../tests/utils/general';
|
|
|
|
import { expect } from '@playwright/test';
|
|
|
|
|
|
|
|
export class ToolbarCalendarRangePage extends BasePage {
|
|
|
|
readonly toolbar: ToolbarPage;
|
|
|
|
|
|
|
|
constructor(toolbar: ToolbarPage) {
|
|
|
|
super(toolbar.rootPage);
|
|
|
|
this.toolbar = toolbar;
|
|
|
|
}
|
|
|
|
|
|
|
|
get() {
|
|
|
|
return this.rootPage.getByTestId('nc-calendar-range-menu');
|
|
|
|
}
|
|
|
|
|
|
|
|
async click({ title }: { title: string }) {
|
|
|
|
await this.get().getByTestId('nc-calendar-range-from-field-select').click();
|
|
|
|
await this.rootPage.locator('.ant-select-dropdown:visible').locator(`div[title="${title}"]`).click();
|
|
|
|
}
|
|
|
|
|
|
|
|
async newCalendarRange({ fromTitle, toTitle }: { fromTitle: string; toTitle?: string }) {
|
|
|
|
await this.get().getByTestId(`nc-calendar-range-from-field-select`).click();
|
|
|
|
await this.rootPage.locator('.rc-virtual-list-holder-inner > div').locator(`text="${fromTitle}"`).click();
|
|
|
|
if (toTitle) {
|
|
|
|
await this.get().getByTestId(`nc-calendar-range-to-field-select`).click();
|
|
|
|
await this.rootPage.locator('.ant-select-item-option-content').locator(`:text("${toTitle}")`).click();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async verifyCalendarRange({ fromTitle, toTitle }: { fromTitle: string; toTitle?: string }) {
|
|
|
|
const from = await this.get().getByTestId('nc-calendar-range-from-field-select');
|
|
|
|
|
|
|
|
const fromFieldText = await getTextExcludeIconText(from);
|
|
|
|
expect(fromFieldText).toBe(fromTitle);
|
|
|
|
|
|
|
|
if (toTitle) {
|
|
|
|
const to = await this.get().getByTestId('nc-calendar-range-to-field-select');
|
|
|
|
const toFieldText = await getTextExcludeIconText(to);
|
|
|
|
expect(toFieldText).toBe(toTitle);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|