Я вручную устанавливаю куки авторизации для своей цели входа в систему, и я хотел бы поделиться токеном аутентификации между своими тестами. В первый раз я должен выполнить вход в тест, а затем сохранить маркер авторизации в переменной и поделиться им между тестовыми файлами.
Вот фрагмент кода, объясняющий, что и как пытаюсь сделать:
loginTest. js:
let authToken = null;
fixture`Login test`
.page(inputData.url)
.beforeEach(async (t) => {
const nextMonth = new Date();
nextMonth.setMonth(nextMonth.getMonth() + 1);
await t.navigateTo(inputData.url).then(await setCookie('AUTH_COOKIE_ID', authToken, nextMonth));
});
test
.before(async () => {
await loginPage.login(inputData.firstUserEmailId, inputData.firstUserPassword);
authToken = await getCookie('AUTH_COOKIE_ID');
})('Verify login test', async (t) => {
await loginPage.goToPeople(personName);
await t
.expect(loginPage.personName.exists)
.ok();
});
Теперь, после теста, у меня есть фактический authToken
(не ноль) и если мне нужно совместно использовать переменную authToken
во всех моих тестах во всех моих файлах, то как мне это сделать? с этим дизайном кода я могу поделиться authToken
в том же файле (набор тестов). например:
У меня есть файл peopleTest. js:
fixture`People test`
.page(inputData.url)
.beforeEach(async (t) => {
const nextMonth = new Date();
nextMonth.setMonth(nextMonth.getMonth() + 1);
await t.navigateTo(inputData.url).then(await setCookie('AUTH_COOKIE_ID', loginTest.authToken, nextMonth));
});
test('Verify people test', async (t) => {
await loginPage.goToPeople(personName);
await t
.expect(loginPage.personName.exists)
.ok();
});
В приведенном выше тесте, если я могу сделать loginTest.authToken
это было бы здорово.
PS: В случае, если люди задаются вопросом, почему я делаю настройку cook ie вместо использования useRole
. Просто чтобы вы знали, что useRole
не работал в моей настройке, так как приложение вручную устанавливает cook ie в моем локальном окружении, поэтому мне нужно вручную установить cook ie в качестве обходного пути входа в систему.