import { Row } from './row'; export class Rows { constructor(private selector: string) {} assertCount(size: number) { cy.get(`${this.selector} .ag-center-cols-container .ag-row`).should('have.length', size); } getAllRows() { return cy.get(`${this.selector} .ag-center-cols-container`).children('.ag-row'); } getPinnedRow(index = 0) { return cy.get(`${this.selector} .ag-pinned-left-cols-container [row-index="${index}"]`); } getRow(index = 0) { return cy.get(`${this.selector} .ag-center-cols-container [row-index="${index}"]`); } getSelected() { return cy.get(`${this.selector} .ag-center-cols-container .ag-row-selected`); } getFirst() { return cy .get(`${this.selector} .ag-center-cols-container`) .children('.ag-row') .first(); } getLast() { return cy .get(`${this.selector} .ag-center-cols-container`) .children('.ag-row') .last(); } get(index: number = 0) { return new Row(this.selector, index); } openContextMenu(index = 0) { return this.getRow(index).rightclick({ multiple: true, force: true }); } select(index = 0) { this.getRow(index).click({ multiple: true, force: true }); return this; } selectRange(start: number, end: number) { cy.get('body').type('{meta}', { release: false }); for (let i = start; i <= end; i++) { this.select(i); } return cy.get('body').type('{meta}', { release: true }); } toggleSelection(start: number, end: number = -1) { if (end < start) { end = start; } for (let i = start; i <= end; i++) { this.getPinnedRow(i) .find('.ag-selection-checkbox .ag-checkbox-input') .last() .click({ force: true }); } } toggleSelectAll() { cy.get(`${this.selector} dato-grid-multi-select-column-header dato-checkbox`).click(); } clearRowsSelection() { cy.get(`${this.selector} [data-auto-id="grid-clear-selected-rows"]`).click(); } selectAllPages() { cy.get(`${this.selector} [data-auto-id="grid-select-all-pages"]`).click(); } get grouped() { return cy.get(`${this.selector} .ag-center-cols-container`).find(`.ag-row-group`); } }