Экспорт Jest-функций - PullRequest
       35

Экспорт Jest-функций

0 голосов
/ 10 июня 2019

Я использую jest + puppeteer, и у меня есть код, который я хотел бы повторно использовать в своем проекте.

Я использую следующую инструкцию: https://jestjs.io/docs/en/getting-started

//adminLogin2.js
const admLog = function admLog () {
     return
     page.goto(data.config.env.host);
     page.waitForSelector(data.selectors.admin.auth.input_login);
     page.click(data.selectors.admin.auth.input_login);
     page.type(data.selectors.admin.auth.input_login, data.credentials.business_email.login);
     page.click(data.selectors.admin.auth.form_button_first);

    // second step
     page.waitForSelector(data.selectors.admin.auth.input_login_password);
     page.click(data.selectors.admin.auth.input_login_password);
     page.type(data.selectors.admin.auth.input_login_password, data.credentials.business_email.password);
     page.click(data.selectors.admin.auth.form_button_second);
     page.waitForSelector(data.selectors.admin.auth.business_login_button);
     page.click(data.selectors.admin.auth.business_login_button);
     page.waitForSelector(data.selectors.admin.auth.business_body);

}


module.exports = admLog;

//test

const data =   require('../config');
const admLog = require('../struct/Login/adminLogin2');


describe('GetPackage :: Auth', () => {

    it('Admin Email', async () => {
        await admLog();

    });
});

Тест можно запускать без исключений, но в автономном режиме ничего не происходит: ложный режим Chrome просто запускается и закрывается.

Что нужно исправить?

1 Ответ

0 голосов
/ 05 июля 2019
  1. Добавьте async/await в функцию admLog.
  2. Удалите оператор return, чтобы исключить Автоматическая вставка точки с запятой

Таким образом, окончательный файл adminLogin2.js должен выглядеть следующим образом:

//adminLogin2.js
const admLog = async function() {
    await page.goto(data.config.env.host);
    await page.waitForSelector(data.selectors.admin.auth.input_login);
    await page.click(data.selectors.admin.auth.input_login);
    await page.type(data.selectors.admin.auth.input_login, data.credentials.business_email.login);
    await page.click(data.selectors.admin.auth.form_button_first);

    // second step
    await page.waitForSelector(data.selectors.admin.auth.input_login_password);
    await page.click(data.selectors.admin.auth.input_login_password);
    await page.type(data.selectors.admin.auth.input_login_password, data.credentials.business_email.password);
    await page.click(data.selectors.admin.auth.form_button_second);
    await page.waitForSelector(data.selectors.admin.auth.business_login_button);
    await page.click(data.selectors.admin.auth.business_login_button);
    await page.waitForSelector(data.selectors.admin.auth.business_body);
}

module.exports = admLog;
...