Recientemente comencé a jugar con JS y busqué en Cypress para escribir algunas pruebas simples de automatización.
mi código escribe lo siguiente:
Cypress.Commands.add("setup", (email, password) => { getAccessToken(email, password).then(console.log) }) function getAccessToken (email, password) { cy.request('POST', 'testurl',{ "email": email, "password": password }).then((response) => { return response.body.access_token }) }console.log imprime access_token muy bien si lo coloco dentro de getAccessToken en donde está la declaración de devolución... pero console.log se imprime sin identificar si lo llamo en la configuración del comando incluso después de usar .then, (mi objetivo es obtener access_token y utilícelo como entrada para otra función dentro de "configuración")
Su return solo devuelve la response.body.access_token en la cadena de Cypress. Si agregó un .then() después del de su función, habría obtenido el valor correctamente.
En su lugar, puede devolver toda la cadena cy.request() en su función y ver la respuesta.
function getAccessToken (email, password) { return cy.request('POST', 'testurl',{ "email": email, "password": password }).then((response) => { return response.body.access_token }) }Probado con este código:
const getTest = () => { return cy.request('http://www.google.com').then((res) => { return res.body; }); }; getTest().then(console.log);