Поэтому я пытаюсь использовать пользовательскую команду, чтобы уменьшить необходимость записывать одно и то же в несколько файлов. В частности, это для входа в систему и установки токена через JWT.
Вот текущий рабочий код (заимствованный из примера входа в JWT из примеров кипариса):
let user;
before(function() {
cy.request("POST", Cypress.env("auth_url"), {
username: Cypress.env("auth_username"),
password: Cypress.env("auth_password")
})
.its("body")
.then(res => {
user = res;
});
});
beforeEach(function() {
console.log(cy.get_auth_token)
cy.visit("/", {
onBeforeLoad(win) {
// set the user object in local storage
win.localStorage.setItem("token", user.token);
}
});
});
Итак, я попытался сделать что-то похожее через:
Cypress.Commands.add("get_auth_token", () => {
let user;
cy.request("POST", Cypress.env("auth_url"), {
username: Cypress.env("auth_username"),
password: Cypress.env("auth_password")
})
.its("body")
.then(res => {
user = res;
});
return user;
})
Однако, когда я пытаюсь вызвать его в моей beforeEach
функции как let user = cy.get_auth_token
, я получаю ошибки о том, что пользователь не определен. Я делаю что-то не так с возвратом значения? Я не эксперт по обещаниям ... но такое чувство, что оно должно работать?
Спасибо!