import { Column } from './column'; import { isNumber } from '../utils'; import Chainable = Cypress.Chainable; export class Columns { constructor(private selector: string) {} getAll() { return cy.get(`${this.selector} [data-auto-id$="-column-header"]`).then(headers => { return headers.map((i, el) => { const field = el.getAttribute('data-field') as string; return new Column(this.selector, field); }); }); } getColumn(id: string): Column; getColumn(index: number): Chainable; getColumn(idOrIndex: string | number): Chainable | Column { if (isNumber(idOrIndex)) { return this.getAll().then(columns => columns[idOrIndex]); } return new Column(this.selector, idOrIndex); } get pinned() { return cy.get(this.selector).find(`.ag-pinned-left-cols-container`); } }