Estoy tratando de seguir este artículo aquí para agregar cy.session() a mi función de inicio de sesión. Sin embargo, cuando hago esto y luego ejecuto mi prueba, aparece el error cy.session is not a function
Configuré "experimentalSessionSupport": true en mi archivo de configuración cypress.json (y confirmé que mi prueba también ve este valor como verdadero). Según tengo entendido, eso debería ser todo lo que necesito hacer, pero obviamente me estoy perdiendo algo.
Estoy usando Cypress versión 9.4.1. Intenté crear un comando de inicio de sesión personalizado en su lugar (exactamente como en el artículo), pero obtengo el mismo error al ejecutarlo.
Mi prueba funciona perfectamente sin el comando cy.session() .
iniciar sesión.js :
class LoginPage { ... login(username, password) { cy.session([username, password], () => { cy.visit('/login'); this.emailField.type(username); this.passwordField.type(password); this.loginButton.click(); }); } } export default new LoginPage();ciprés.json :
{ ... "experimentalSessionSupport": true }Estoy usando Cypress versión 9.4.1.
Bueno, esto no era realmente cierto. Todavía estaba en una versión que no admitía cy.session(). Error tonto de mi parte. Ahora todo funciona bien desde que actualicé Cypress.
¿Es un error de mecanografiado - TypeError: cy.[custom command] is not a function ?
Si es así, es probable que la definición de tipo aún no se haya agregado debido al sabor experimental.
Agregue la misma definición que usaría para un comando personalizado en la parte superior de la prueba.
Esto está tomado de la última versión.
declare namespace Cypress { interface SessionOptions { validate?: () => false | void } interface Chainable<Subject = any> { session( id: string | object, setup?: SessionOptions['validate'], options?: SessionOptions ): Chainable<null> } }