cypress-maildev
Version:
An easy-to-use cypress bunch of commands to use Maildev API for tests messages reception !
93 lines (92 loc) • 3.79 kB
JavaScript
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 */
var request_1 = __importDefault(require("./request"));
var MaildevCommands = /** @class */ (function () {
function MaildevCommands() {
this.baseUrl = "".concat(Cypress.env("MAILDEV_PROTOCOL"), "://").concat(Cypress.env("MAILDEV_HOST"));
if (Cypress.env("MAILDEV_API_PORT")) {
this.baseUrl += ":".concat(Cypress.env("MAILDEV_API_PORT"));
}
this.request = new request_1.default({
baseUrl: this.baseUrl,
});
}
Object.defineProperty(MaildevCommands, "cypressCommands", {
get: function () {
return [
"maildevGetAllMessages",
"maildevGetLastMessage",
"maildevGetMessageById",
"maildevVisitMessageById",
"maildevGetMessageBySubject",
"maildevGetMessageBySentTo",
"maildevDeleteMessageById",
"maildevGetOTPCode",
"maildevDeleteAllMessages",
"maildevHealthcheck",
];
},
enumerable: false,
configurable: true
});
MaildevCommands.prototype.maildevGetAllMessages = function () {
return this.request.get("/email");
};
MaildevCommands.prototype.maildevGetLastMessage = function () {
return this.maildevGetAllMessages().then(function (emails) {
return emails[emails.length - 1];
});
};
MaildevCommands.prototype.maildevGetMessageById = function (id) {
return this.request.get("/email/".concat(id));
};
MaildevCommands.prototype.maildevVisitMessageById = function (id) {
cy.origin("".concat(this.baseUrl), { args: { id: id } }, function (_a) {
var id = _a.id;
cy.visit("/email/".concat(id, "/html"));
});
};
MaildevCommands.prototype.maildevGetMessageBySubject = function (str) {
return this.maildevGetAllMessages().then(function (emails) {
var _a;
return (_a = emails.find(function (email) { return email.subject === str; })) !== null && _a !== void 0 ? _a : null;
});
};
MaildevCommands.prototype.maildevGetMessageBySentTo = function (address) {
return this.maildevGetAllMessages().then(function (messages) {
var reversedMessages = messages.reverse();
for (var _i = 0, reversedMessages_1 = reversedMessages; _i < reversedMessages_1.length; _i++) {
var message = reversedMessages_1[_i];
for (var _a = 0, _b = message.to; _a < _b.length; _a++) {
var to = _b[_a];
if (to.address === address) {
return message;
}
}
}
return null;
});
};
MaildevCommands.prototype.maildevDeleteMessageById = function (id) {
return this.request.delete("/email/".concat(id));
};
MaildevCommands.prototype.maildevGetOTPCode = function (str, digits) {
if (digits === void 0) { digits = 6; }
var OTP_REGEXP = new RegExp("\\d{" + digits + "}");
var res = str.match(OTP_REGEXP);
return cy.wrap(res ? res[0] : null);
};
MaildevCommands.prototype.maildevDeleteAllMessages = function () {
return this.request.delete("/email/all");
};
MaildevCommands.prototype.maildevHealthcheck = function () {
return this.request.get("/healthz");
};
return MaildevCommands;
}());
exports.MaildevCommands = MaildevCommands;
;