cypress-guerrillamail
Version:
Cypress plugin that helps manipulate login/forgot password flow
93 lines (86 loc) • 2.37 kB
TypeScript
/// <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[]>;
}
}
}