Я почти уверен, что вам нужно поместить ловушку before в тот же тестовый блок, чтобы он запускался до обработки.Пример:
before(async() => {
const jwt = await createJWT();
});
describe('My other tests', () => {
it('Customer sign up', async() => {
const signUpText = await customerSignUp(page, frame);
expect(signUpText).to.equal("You have signed up")
});
});
Или:
describe('My other tests', () => {
before(async() => {
const jwt = await createJWT();
});
it('Customer sign up', async() => {
const signUpText = await customerSignUp(page, frame);
expect(signUpText).to.equal("You have signed up")
});
});
Кроме того, ваш метод createJwt
не возвращает Promise, что препятствует работе await.Вам нужно сделать что-то вроде этого:
module.exports = async() => {
const options = {
method: 'POST',
url: 'https://my-website.auth.io/oauth/token',
headers: {
'content-type': 'application/json'
},
body: '{"client_id":"dew76dw7e65d7w65d7wde"}'
};
return new Promise((resolve, reject) => request(options, function (error, response, body) {
if(error) {
reject(error);
}
resolve(body);
}));
};