|
|
|
import { expect } from '@playwright/test';
|
|
|
|
import { CellPageObject } from '.';
|
|
|
|
import BasePage from '../../../Base';
|
|
|
|
|
|
|
|
export class RatingCellPageObject 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 select({ index, columnHeader, rating }: { index?: number; columnHeader: string; rating: number }) {
|
|
|
|
await this.get({ index, columnHeader }).scrollIntoViewIfNeeded();
|
|
|
|
await this.waitForResponse({
|
|
|
|
uiAction: async () =>
|
|
|
|
await this.get({ index, columnHeader })
|
|
|
|
.locator('.ant-rate-star > div')
|
|
|
|
.nth(rating - 1)
|
|
|
|
.click(),
|
|
|
|
httpMethodsToMatch: ['POST', 'PATCH'],
|
|
|
|
requestUrlPathToMatch: 'api/v1/db/data/noco/',
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async verify({ index, columnHeader, rating }: { index: number; columnHeader: string; rating: number }) {
|
|
|
|
const cell = this.get({ index, columnHeader });
|
|
|
|
await cell.scrollIntoViewIfNeeded();
|
|
|
|
await expect(cell.locator(`li.ant-rate-star.ant-rate-star-full`)).toHaveCount(rating);
|
|
|
|
}
|
|
|
|
}
|