UNPKG

cypress-maildev

Version:

An easy-to-use cypress bunch of commands to use Maildev API for tests messages reception !

85 lines (84 loc) 2.91 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MaildevCommands = void 0; /* global Cypress */ const request_1 = __importDefault(require("./request")); class MaildevCommands { static get cypressCommands() { return [ "maildevGetAllMessages", "maildevGetLastMessage", "maildevGetMessageById", "maildevVisitMessageById", "maildevGetMessageBySubject", "maildevGetMessageBySentTo", "maildevDeleteMessageById", "maildevGetOTPCode", "maildevDeleteAllMessages", "maildevHealthcheck", ]; } constructor() { console.log("MAILDEV_PROTOCOL", Cypress.expose("MAILDEV_PROTOCOL")); this.baseUrl = `${Cypress.expose("MAILDEV_PROTOCOL")}://${Cypress.expose("MAILDEV_HOST")}`; if (Cypress.expose("MAILDEV_API_PORT")) { this.baseUrl += `:${Cypress.expose("MAILDEV_API_PORT")}`; } this.request = new request_1.default({ baseUrl: this.baseUrl, }); } maildevGetAllMessages() { return this.request.get("/email"); } maildevGetLastMessage() { return this.maildevGetAllMessages().then((emails) => { return emails[emails.length - 1]; }); } maildevGetMessageById(id) { return this.request.get(`/email/${id}`); } maildevVisitMessageById(id) { cy.origin(`${this.baseUrl}`, { args: { id } }, ({ id }) => { cy.visit(`/email/${id}/html`); }); } maildevGetMessageBySubject(str) { return this.maildevGetAllMessages().then((emails) => { var _a; return (_a = emails.find((email) => email.subject === str)) !== null && _a !== void 0 ? _a : null; }); } maildevGetMessageBySentTo(address) { return this.maildevGetAllMessages().then((messages) => { const reversedMessages = messages.reverse(); for (const message of reversedMessages) { for (const to of message.to) { if (to.address === address) { return message; } } } return null; }); } maildevDeleteMessageById(id) { return this.request.delete(`/email/${id}`); } maildevGetOTPCode(str, digits = 6) { const OTP_REGEXP = new RegExp(`\\d{${digits}}`); const res = str.match(OTP_REGEXP); return cy.wrap(res ? res[0] : null); } maildevDeleteAllMessages() { return this.request.delete("/email/all"); } maildevHealthcheck() { return this.request.get("/healthz"); } } exports.MaildevCommands = MaildevCommands;