Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

495
Views
Cypress: ¿Cómo verificar los parámetros de consulta en la solicitud de recuperación?

Estoy tratando de interceptar una solicitud de recuperación y afirmar que los parámetros de carga/consulta son correctos. He buscado en la documentación de Cypress, pero todo lo mencionado está configurando parámetros de consulta. Yo, por ejemplo, necesito afirmar que una solicitud de búsqueda como https://helloWorld.com/proxy/service tiene parámetros de consulta /carga útil de ?service=request&layers=demo . ¿Hay alguna forma de hacer esto?

He intentado casi todo, pero algo similar a esto es lo que estoy buscando. ¿Algunas ideas?

 cy.location("https://helloWorld/proxy/service").should((loc) => { expect(loc.search).to.eq('?service=request&layers=demo') })
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

La configuración de una intercepción puede verificar la forma de la solicitud

 cy.intercept('https://helloworld.com/proxy/service').as('requestWithQuery') // trigger the request cy.wait('@requestWithQuery').then(interception => { expect(interception.req.body.query.includes('service=request').to.eq(true) })

No estoy seguro de si la afirmación anterior es exactamente lo que necesita, pero coloque un console.log(interception.req) para verificar lo que necesita afirmar.


La intercepción también puede especificar la consulta.

 cy.intercept({ pathname: 'https://helloworld.com/proxy/service', query: { service: 'request', layers: 'demo' }, }).as('requestWithQuery') // trigger the request cy.wait('@requestWithQuery')

Por cierto, su uso de cy.location() es incorrecto, usaría

 cy.location('search').should('eq', '?service=request&layers=demo') // or cy.location().should((loc) => { expect(loc.href).to.eq( 'https://helloworld/proxy/service?service=request&layers=demo' ) })

Pero la aplicación ya tendría que haber navegado a https://helloWorld/proxy/service y no está claro a partir de su pregunta si eso está sucediendo.


Captura de "helloWorld/proxy/service"

Cuando su aplicación usa fetch , la URL se convierte a minúsculas.

Entonces, enviar fetch('https://helloWorld/proxy/service') puede ser interceptado con

 cy.intercept('https://helloworld/proxy/service') // all lower-case url

Hay una pista en el registro de Cypress, la recuperación registrada se muestra como todos los caracteres en minúsculas

(buscar) OBTENER https://helloworld/proxy/service

BaseUrl e intercepción

Cuando baseUrl es un dominio diferente del nombre de host de intercepción, puede especificarlo con una opción adicional, aunque en la práctica descubrí que también funciona con la URL completa, como se muestra arriba.

 cy.intercept('/proxy/service*', { hostname: 'https://helloworld' })
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!