0

I'm using jest+puppeteer and I have a code that I'd like to reuse across my project.

I use the following instruction: 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();

    });
});

Test could be run without exceptions, but nothing happens, in headless:false mode Chrome is just run and closed.

What should be fixed?

skyboyer
  • 22,209
  • 7
  • 57
  • 64
DanilD
  • 1
  • 1

1 Answers1

0
  1. Add the async/await in the admLog function.
  2. Remove the return statement to prevent the Automatic semicolon insertion

So the final adminLogin2.js file should be like this:

//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;
Yevhen Laichenkov
  • 7,746
  • 2
  • 27
  • 33