dozzzzer
@dozzzzer

Обмен переменными между кастомными командами Cypress — как реализовать?

Имеются две кастомные команды в commands.js
Первая делает запрос, парсит результат, записывает в файл имя и имейл.
Вторая инициализирует форму регистрации для имейла, полученного первой командой.
Как реализовать передачу значения имейла, полученного в результате запроса первой командой, для последующего использования второй командой наилучшим образом?

Cypress.Commands.add("getMockData", function() {
    cy.request('https://api.mockaroo.com/api/b2e4f1f0?count=1&key=46aaa0a0').its('body.0').as('body')
    .then((user) => {
        cy.writeFile('cypress/fixtures/user.json',
        { "firstName": user.first_name, "lastName": user.last_name, "email": user.email }, {log: 'true'})
        cy.wrap(user.email).as('email')
    })
})

Cypress.Commands.add("initRegForm", function() {
    reg.getNewEmailField().clear()
    reg.getNewEmailField().type(this.email) // Cannot read property 'email' of undefined
 
    reg.createNewAccountButton().click()
})

Также буду благодарен за объяснение, почему при попытке обращения к this.email получаем ошибку (Cannot read property 'email' of undefined), хотя в то же время, если я открываю консоль в режиме отладки перед этой строкой, то this.email возвращает мне корректное значение, полученное из предыдущей команды.
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы