diff --git a/lib/helpers/ContentUiHelper.ts b/lib/helpers/ContentUiHelper.ts index b1b4c164..c23e4f53 100644 --- a/lib/helpers/ContentUiHelper.ts +++ b/lib/helpers/ContentUiHelper.ts @@ -172,6 +172,7 @@ export class ContentUiHelper extends UiBaseLocators { private readonly refListBlock: Locator; private readonly propertyActionMenu: Locator; private readonly documentCreateOptionsModal: Locator; + private readonly listViewCustomRows: Locator; constructor(page: Page) { super(page); @@ -353,6 +354,8 @@ export class ContentUiHelper extends UiBaseLocators { this.memberPickerSearchTxt = this.page.locator('umb-member-picker-modal #input'); // Property Actions this.propertyActionMenu = page.locator('#property-action-popover umb-popover-layout'); + // List view custom + this.listViewCustomRows = page.locator('table tbody tr'); } async enterContentName(name: string) { @@ -1753,4 +1756,17 @@ export class ContentUiHelper extends UiBaseLocators { async doesDocumentModalHaveText(text: string) { await expect(this.documentCreateOptionsModal).toContainText(text); } + + async doesListViewItemsHaveCount(pageSize: number){ + await expect(this.listViewCustomRows).toHaveCount(pageSize); + } + + async isListViewItemWithNameVisible(itemName: string, index: number = 0){ + await expect(this.listViewCustomRows.nth(index)).toContainText(itemName); + } + + async clickPaginationNextButton(){ + await expect(this.nextBtn).toBeVisible(); + await this.nextBtn.click(); + } } \ No newline at end of file diff --git a/lib/helpers/DataTypeApiHelper.ts b/lib/helpers/DataTypeApiHelper.ts index 7375f8a0..8c5f576e 100644 --- a/lib/helpers/DataTypeApiHelper.ts +++ b/lib/helpers/DataTypeApiHelper.ts @@ -1219,6 +1219,32 @@ export class DataTypeApiHelper { return await this.save(dataType); } + async createListViewContentDataTypeWithLayoutAndPageSize(name: string = 'List View - Content Test', layoutAlias: string = 'Umb.CollectionView.Document.Table', layoutName: string = 'List', pageSize: number = 100 ) { + await this.ensureNameNotExists(name); + + const dataType = new ListViewDataTypeBuilder() + .withName(name) + .withPageSize(pageSize) + .withOrderDirection('asc') + .addLayout() + .withName(layoutName) + .withIcon('icon-list') + .withCollectionView(layoutAlias) + .done() + .addColumnDisplayedProperty() + .withAlias('updateDate') + .withHeader('Last edited') + .withIsSystem(true) + .done() + .addColumnDisplayedProperty() + .withAlias('creator') + .withHeader('Updated by') + .withIsSystem(true) + .done() + .build(); + return await this.save(dataType); + } + async createListViewContentDataTypeWithAllPermissions(name: string = 'List View - Content Test') { await this.ensureNameNotExists(name); diff --git a/package-lock.json b/package-lock.json index 7019e1b2..60dbd553 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@umbraco/playwright-testhelpers", - "version": "16.0.56", + "version": "16.0.57", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@umbraco/playwright-testhelpers", - "version": "16.0.56", + "version": "16.0.57", "license": "MIT", "dependencies": { "@umbraco/json-models-builders": "2.0.40", diff --git a/package.json b/package.json index 5ad3e84d..6cefedf5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@umbraco/playwright-testhelpers", - "version": "16.0.56", + "version": "16.0.57", "description": "Test helpers for making playwright tests for Umbraco solutions", "main": "dist/lib/index.js", "files": [