多维表格
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.
 
 
 
 
 
 

73 lines
2.0 KiB

import { expect, Locator } from '@playwright/test';
import { DocsOpenedPagePage } from '.';
import BasePage from '../../../Base';
export class DocsHistoryPage extends BasePage {
readonly openedPage: DocsOpenedPagePage;
constructor(openedPage: DocsOpenedPagePage) {
super(openedPage.rootPage);
this.openedPage = openedPage;
}
get() {
return this.openedPage.get();
}
historyButton() {
return this.get().getByTestId('nc-doc-page-history-button');
}
historyPane() {
return this.get().getByTestId('nc-doc-page-history-pane');
}
historyPaneList() {
return this.historyPane().getByTestId('nc-doc-page-history-pane-list');
}
async clickHistoryButton() {
return await this.historyButton().click();
}
async verifyHistoryOpened({ isOpened }: { isOpened: boolean }) {
await this.historyPane().waitFor({ state: isOpened ? 'visible' : 'hidden' });
}
async verifyHistoryList({
count,
items,
}: {
count?: number;
items?: { title: string; index: number; active?: boolean }[] | undefined;
}) {
if (count) {
await expect(this.historyPaneList().locator('.nc-doc-page-history-pane-list-item')).toHaveCount(count);
}
if (items) {
for (const item of items) {
await expect(this.historyPaneList().locator('.nc-doc-page-history-pane-list-item').nth(item.index)).toHaveText(
item.title
);
if (item.active) {
await expect(
this.historyPaneList().locator('.nc-doc-page-history-pane-list-item').nth(item.index)
).toHaveAttribute('aria-selected', 'true');
}
}
}
}
async clickHistoryItem({ index }: { index: number }) {
await this.historyPaneList().locator('.nc-doc-page-history-pane-list-item').nth(index).click();
}
async clickRestoreButton() {
await this.get().getByTestId('nc-docs-history-restore-button').click();
}
async clickRestoreModalConfirmButton() {
await this.rootPage.getByTestId('nc-docs-history-confirm-button').click();
}
}