|
|
|
import { CellPageObject } from '.';
|
|
|
|
import BasePage from '../../../Base';
|
|
|
|
import { expect } from '@playwright/test';
|
|
|
|
|
|
|
|
export class TimeCellPageObject extends BasePage {
|
|
|
|
readonly cell: CellPageObject;
|
|
|
|
|
|
|
|
constructor(cell: CellPageObject) {
|
|
|
|
super(cell.rootPage);
|
|
|
|
this.cell = cell;
|
|
|
|
}
|
|
|
|
|
|
|
|
get({ index, columnHeader }: { index?: number; columnHeader: string }) {
|
|
|
|
return this.cell.get({ index, columnHeader });
|
|
|
|
}
|
|
|
|
|
|
|
|
async verify({ index, columnHeader, value }: { index: number; columnHeader: string; value: string }) {
|
|
|
|
const cell = this.get({ index, columnHeader });
|
|
|
|
await cell.scrollIntoViewIfNeeded();
|
|
|
|
await cell.locator(`input[title="${value}"]`).waitFor({ state: 'visible' });
|
|
|
|
await expect(cell.locator(`[title="${value}"]`)).toBeVisible();
|
|
|
|
}
|
|
|
|
|
|
|
|
async selectTime({
|
|
|
|
// hour: 0 - 23
|
|
|
|
// minute: 0 - 59
|
|
|
|
// second: 0 - 59
|
|
|
|
hour,
|
|
|
|
minute,
|
|
|
|
}: {
|
|
|
|
hour: number;
|
|
|
|
minute: number;
|
|
|
|
}) {
|
|
|
|
const timePanel = this.rootPage.locator('.ant-picker-time-panel-column');
|
|
|
|
await timePanel.nth(0).locator('.ant-picker-time-panel-cell').nth(hour).click();
|
|
|
|
await timePanel.nth(1).locator('.ant-picker-time-panel-cell').nth(minute).click();
|
|
|
|
if (hour < 12) {
|
|
|
|
await timePanel.nth(2).locator('.ant-picker-time-panel-cell').nth(0).click();
|
|
|
|
} else {
|
|
|
|
await timePanel.nth(2).locator('.ant-picker-time-panel-cell').nth(1).click();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async save() {
|
|
|
|
await this.rootPage.locator('button:has-text("Ok"):visible').click();
|
|
|
|
}
|
|
|
|
|
|
|
|
async set({ index, columnHeader, value }: { index: number; columnHeader: string; value: string }) {
|
|
|
|
const [hour, minute, _second] = value.split(':');
|
|
|
|
await this.get({ index, columnHeader }).click();
|
|
|
|
await this.get({ index, columnHeader }).dblclick();
|
|
|
|
await this.selectTime({ hour: +hour, minute: +minute });
|
|
|
|
await this.save();
|
|
|
|
}
|
|
|
|
}
|