How to add regular expression to filter out the xhr URL in Cypress

I have a scenario where in I have to process and validate the XHR response of nearly equal URLs:

URL-1:
URL-2: 

when I initialize the server in cypress and mention the xhr url as following, it always returns me the response of the URL-1 (which in my case is called first by the AUT) but I am unable to fetch the response of URL-2 although it is called in the AUT.

cy.server();
cy.route('GET','**/api/customer/**').as('GETCustomer);

I want to capture the response of URL-2. Please suggest any approach to do so (preferably regEx)

3 Answers

Cypress uses minimatch to filter URLs. Accordingly, you need to specify **/customer/*.

  • ** — feature known as globstar. Matches all files and zero or more directories and subdirectories. If followed by a /it matches only directories and subdirectories. To work that way it must be the only thing inside the path part e.g. /myapp/**.js will not work that way.
  • * — Matches any string.
Source: . Full code:
cy.server();
cy.route('GET','**/api/customer/*').as('GETCustomer);
...
cy.wait('@GETCustomer') .then((response) => { <your handler here> });

Check online here

The above solution works for a wild card search criteria but not for specific api search. Using something like this can help you sort out the request

cy.route('GET', /\/api\/customer\/([a-zA-Z0-9]){8}-([a-zA-Z0-9]){4}-([a-zA-Z0-9]){4}-([a-zA-Z0-9]){4}-([a-zA-Z0-9]){1,}$/).as('GETCustomer');

cy.server() and cy.route() are deprecated, see link

Use cy.intercept() instead, info here

Example:

cy.intercept('GET', /api\/node1\/node2\/data$/).as('myAlias');

The second parameter above it's a random REGEX, but you can also pass a STRING.

then in order to wait for the async call you have to write:

cy.wait('@myAlias')

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like