UNPKG

cypress-guerrillamail

Version:

Cypress plugin that helps manipulate login/forgot password flow

93 lines (86 loc) 2.37 kB
/// <reference types="cypress" /> // *********************************************** // This example commands.ts shows you how to // create various custom commands and overwrite // existing commands. // // For more comprehensive examples of custom // commands please read more here: // https://on.cypress.io/custom-commands // *********************************************** // // // -- This is a parent command -- // Cypress.Commands.add('login', (email, password) => { ... }) // // // -- This is a child command -- // Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) // // // -- This is a dual command -- // Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) // // // -- This will overwrite an existing command -- // Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) // // declare global { // namespace Cypress { // interface Chainable { // login(email: string, password: string): Chainable<void> // drag(subject: string, options?: Partial<TypeOptions>): Chainable<Element> // dismiss(subject: string, options?: Partial<TypeOptions>): Chainable<Element> // visit(originalFn: CommandOriginalFn, url: string, options: Partial<VisitOptions>): Chainable<Element> // } // } // } export interface LinkData { text: string; href: string; } export interface EmailData { subject: string; date: string; textContent: string; htmlContent: string; isRead: boolean; links: LinkData[]; } export interface GetEmailListParam { email: string; sender: string; deleteAfterRead: boolean; } declare global { namespace Cypress { interface Chainable<Subject = any> { /** * Get a temporary email address * @param * (no parameters) * * @returns * yield email address (string) * * @example * cy.getTemporaryEmail().then((emailAddress) => cy.log("Email address, emailAddress)) */ getTemporaryEmail(): Chainable<string>; /** * Get list of emails with links * * @param * param: GetEmailListParam * * @returns * Chainable<EmailData[]> * * @example * cy.getEmailList * */ getEmailList(param: GetEmailListParam): Chainable<EmailData[]>; } } }