Tengo una API externa implementada en un servidor de desarrollo y una aplicación frontend que se ejecuta en localhost . Necesito adjuntar las cookies que obtengo al iniciar sesión, tanto en mi servidor local como en mi dominio API externo.
Puedo ver que las cookies están ahí usando cy.getCookies({domain: null}) , sin embargo, todas las llamadas API externas dentro de la aplicación de reacción ocurren sin las cookies. Por lo que puedo ver, solo puede agregar cookies a las solicitudes de baseUrl, pero quiero ejecutar mis pruebas en un backend implementado (para que los desarrolladores no necesiten tener una instancia en ejecución de un backend local, que es lo que funciona bien actualmente ya que ambos están en localhost)
cy.setCookies(name, value, {domain: localhost}) cy.setCookies(name, value, {domain: external_api_domain})Si hay una solicitud que se origina en la aplicación al back-end que necesita adjuntar una cookie específica, tal vez una intercepción pueda adjuntarla.
Este es un código no probado y sobre la marcha, es posible que deba ajustarse
cy.intercept('POST', my-url, (req) => const cookie = cy.getCookies(name).then((cookie) => { req.headers['Cookie'] = `${cookie.name}=${cookie.value}`; req.continue() }) })suposiciones
Supongo que el frontend inicia la solicitud que luego el backend pasa a otro servidor, y el backend obtiene toda la información (incluidas las cookies) de la solicitud del frontend.
depuración
Puede verificar que la fase de back-end esté funcionando con cy.request() . En última instancia, desea que FE lo haga, pero en caso de que el problema resida en FE y no en la prueba cy.request() puede ser útil.