Estoy probando un SPA web en funcionamiento con Cypress, usando cypress-localstorage-commands.
before(() => { cy.clearLocalStorageSnapshot(); }); afterEach(() => { cy.saveLocalStorage(); });En la primera sección de código, dentro del primer "eso", solo estoy iniciando sesión en mi sistema haciendo clic en los diferentes campos de datos y accediendo a la sección de la web que me interesa.
it('Open Simulations', () => { cy.visit('/') //Loads the first page cy.get('button[id="onetrust-accept-btn-handler"]').click() //Accepts Cookies cy.get('.input-box-main-field.required').type('mockuser') //Type the user cy.get('input[type=password]').type('mockpwd{enter}') //Type the password cy.get('.spinner').should('not.exist') //waits until loading spinner is gone cy.visit('/simulacion/nueva') //opens simulations cy.scrollTo('right') //scrolls to simular travel button cy.get('.sc-EHOje.fgNeQB').eq(7).click() //Clicks on simular cy.get('.spinner').should('not.exist') //waits until loading spinner is gone })Después de esto aparecerá una pantalla esperando el envío de datos, esta pantalla necesita 4 datos diferentes: Destino, Cantidad de pasajeros, Fecha de llegada, Fecha de salida.
it('Fill Simulation', () => { cy.get('.input-box-main-field').contains('Seleccione un destino de viaje').click()//opens drop down menu cy.get('ul>li').eq(0).click()//selects 1st element aka Spain cy.get('.input-box-main-field.required').type('2')//Setting pasenger number cy.get('.input-box-main-field').eq(3).type(dayjs().format('DD/MM/YYYY'))// settign todays date as return cy.get('.main-button-text').contains('CONTINUAR').click()//Continue cy.get('.spinner').should('not.exist') })Después de esto, la aplicación validará los campos de datos y luego enviará a la API una solicitud posterior con los datos, por lo que se puede devolver un presupuesto. Cuando pruebo esto por mí mismo, no hay problema, la solicitud de publicación se procesa y obtengo mi resultado. Al hacerlo a través de este código de Cypress, aparece un problema, falta la clave de autenticación, por lo que mi backend no me permite realizar una solicitud de publicación. No tengo idea de por qué sucede esto, la clave de autenticación se almacena en LocalStorage.