Я использую 2 аргумента, вот так.
on("task", {
"gmail:get-messagescl": async args => {
const messages = await gmail_tester.get_messages(
path.resolve(__dirname, "credentialsclient.json"),
path.resolve(__dirname, "gmail_tokenclient.json"),
args.options
);
return messages;
},
"gmail:get-messages": async args => {
const messages = await gmail_tester.get_messages(
path.resolve(__dirname, "credentials.json"),
path.resolve(__dirname, "gmail_token.json"),
args.options
);
return messages;
}
});
И в команде. js Я пишу 2 функции
Cypress.Commands.add('checkEmail', (emailaddr, title,) => {
const yestDate = Cypress.moment().add(-1, 'hours').format('YYYY, MM, DD');
cy.task("gmail:get-messages", {
options: {
from: emailaddr,
subject: title,
include_body: true,
after: new Date (yestDate)
// before: new Date(todaysDate)
}
})
})
Cypress.Commands.add('checkEmailCl', (emailaddr, title,) => {
const yestDate = Cypress.moment().add(-1, 'hours').format('YYYY, MM, DD');
cy.task("gmail:get-messagescl", {
options: {
from: emailaddr,
subject: title,
include_body: true,
after: new Date (yestDate)
// before: new Date(todaysDate)
}
})
})
В своих тестах я уже использую свои функции
cy.checkEmail(emailadr, title ).then(emails => {
assert.isAtLeast(
emails.length,
1,
"Expected to find at least one email, but none were found!"
);
const body = emails[0].body.html;
cy.log(body)
assert.isTrue(
body.indexOf(
"https://u15696639.ct.sendgrid.net/ls/click?upn="
) >= 0,
"Verify your email"
);
И для другого теста используя
cy.checkEmailCl(emailadr, title ).then(emails => {