Я должен проверить логин, но для этого мне нужно получить 2-факторный код из электронного письма, и я не знаю, как это сделать.
Я перешел по ссылке на stackoverflow, но не знаю не знаю, как заставить это работать в моем проекте!
Это мой конфигурационный файл:
const MailListener = require('mail-listener2');
const mailListener = new MailListener({
username: 'xxxx@xxxx.com',
password: 'xxxxx',
host: 'imap.gmail.com',
port: 993, // imap port
tls: true,
tlsOptions: { rejectUnauthorized: false },
mailbox: 'INBOX', // mailbox to monitor
searchFilter: ['UNSEEN', 'FLAGGED'], // the search filter being used after an IDLE notification has been retrieved
markSeen: true, // all fetched email willbe marked as seen and not fetched next time
// eslint-disable-next-line max-len
fetchUnreadOnStart: true, // use it only if you want to get all unread email on lib start. Default is `false`,
mailParserOptions: { streamAttachments: true }, // options to be passed to mailParser lib.
attachments: true, // download attachments as they are encountered to the project directory
attachmentOptions: { directory: 'attachments/' }, // specify a download directory for attachments
});
mailListener.start();
mailListener.on('server:connected', function() {
// eslint-disable-next-line no-console
console.log('Mail listener initialized');
});
global.mailListener = mailListener;
},
onComplete: async () => {
await BrowserUtilities.killBrowser();
},
onCleanUp: async () => {
await global.mailListener.stop();
},
Тогда это от моего помощника:
static getLastEmail = async () => {
const deferred = protractor.promise.defer();
// eslint-disable-next-line no-console
console.log('Waiting for an email...');
await global.mailListener.on('mail', function(mail) {
deferred.fulfill(mail);
});
return deferred.promise;
};
кажется, что код работает, потому что отображаются два файла console.log, но у меня есть такой ответ:
- Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
И это мой тест.
import { browser } from 'protractor';
import { Helpers } from '../../support/helper';
describe('Login test cases', () => {
it('Succesfully logged into', async () =>{
// eslint-disable-next-line protractor/missing-wait-message
await browser.wait(Helpers.getLastEmail, 6000);
});
});