多维表格
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.7 KiB

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);
}
}
}