Ombi/tests/cypress/integration/page-objects/requests/requests.page.ts

137 lines
3.4 KiB
TypeScript

import { BasePage } from "../base.page";
class MediaBaseTab {
get allRequestsButton(): Cypress.Chainable<any> {
return cy.get('#filterAll');
}
get pendingRequestsButton(): Cypress.Chainable<any> {
return cy.get('#filterPending');
}
get processingRequestsButton(): Cypress.Chainable<any> {
return cy.get('#filterProcessing');
}
get availableRequestsButton(): Cypress.Chainable<any> {
return cy.get('#filterAvailable');
}
get deniedRequestsButton(): Cypress.Chainable<any> {
return cy.get('#filterDenied');
}
get requestsToDisplayDropdown(): Cypress.Chainable<any> {
return cy.get('#requestsToDisplayDropdown');
}
getGridRow(requestId: number): GridRow {
return new GridRow(requestId);
}
}
class GridRow {
requestId: number;
get title(): Cypress.Chainable<any> {
return cy.get(`#title${this.requestId}`);
}
get requestedBy(): Cypress.Chainable<any> {
return cy.get(`#requestedBy${this.requestId}`);
}
get requestedDate(): Cypress.Chainable<any> {
return cy.get(`#requestedDate${this.requestId}`);
}
get requestedStatus(): Cypress.Chainable<any> {
return cy.get(`#requestedStatus${this.requestId}`);
}
get status(): Cypress.Chainable<any> {
return cy.get(`#status${this.requestId}`);
}
get detailsButton(): Cypress.Chainable<any> {
return cy.get(`#detailsButton${this.requestId}`);
}
get optionsButton(): Cypress.Chainable<any> {
return cy.get(`#optionsButton${this.requestId}`);
}
get optionsDelete(): Cypress.Chainable<any> {
return cy.get(`#requestDelete`);
}
get optionsApprove(): Cypress.Chainable<any> {
return cy.get(`#requestApprove`);
}
get optionsChangeAvailability(): Cypress.Chainable<any> {
return cy.get(`#requestChangeAvailability`);
}
constructor(requestId: number) {
this.requestId = requestId;
}
}
class MoviesTab extends MediaBaseTab {
get adminMasterCheckbox(): Cypress.Chainable<any> {
return cy.get('#adminMasterCheckbox');
}
get bulkFabButton(): Cypress.Chainable<any> {
return cy.get('#bulkFab');
}
get deleteFabButton(): Cypress.Chainable<any> {
return cy.get('#deleteFabButton');
}
get approveFabButton(): Cypress.Chainable<any> {
return cy.get('#approveFabButton');
}
getRowCheckbox(rowId: number): Cypress.Chainable<any> {
return cy.get('#adminMasterCheckbox' + rowId);
}
}
class RequestsPage extends BasePage {
get moviesTab(): Cypress.Chainable<any> {
return cy.get('[role="tab"]').eq(0);
}
get tvTab(): Cypress.Chainable<any> {
return cy.get('[role="tab"]').eq(1);
}
get musicTab(): Cypress.Chainable<any> {
return cy.get('[role="tab"]').eq(2);
}
movies = new MoviesTab();
tv = new MediaBaseTab();
music = new MediaBaseTab();
constructor() {
super();
}
visit(options: Cypress.VisitOptions): Cypress.Chainable<Cypress.AUTWindow>;
visit(): Cypress.Chainable<Cypress.AUTWindow>;
visit(id: string): Cypress.Chainable<Cypress.AUTWindow>;
visit(id: string, options: Cypress.VisitOptions): Cypress.Chainable<Cypress.AUTWindow>;
visit(id?: any, options?: any) {
return cy.visit(`/requests-list`, options);
}
}
export const requestPage = new RequestsPage();