I am writing an integration test with cypress and having trouble with minimatch pattern.
I have two endpoints that I need to stub.
/users/1
and /users/1/profile
.
The way I am trying to mock these two endpoints with cy.intercept()
is the following.
For the first url, /users/1
, I tried cy.intercept('GET', '/users/1', {})
.
For the secton url , /users/1/profile
, I tried cy.intercept('GET', '/users/1/profile', {})
.
The problem is that the first pattern intercepts twice.
Can I get some help on this?? Thanks.
I, too, fell into this problem when first using cy.intercept
. The solution is to pass in a RouteMatcher
object to the method. In particular, you'll want to use the last method signature from the image below:
In the RouteMatcher
object, you can specify a path
property. Here's the description of the path
property:
In essence, using the path
property of the RouteMatcher
object does an exact match against the given string, whereas the url
parameter in the 1st and 2nd method signatures does a substring match against the given string.
So what you'll want is:
cy.intercept(
{method: 'GET', path: '/users/1'},
{body: {}}
)
cy.intercept(
{method: 'GET', path: '/users/1/profile'},
{body: {}}
)
In my opinion, this slight change from Cypress between the cy.route
and cy.intercept
methods was weird and a bit unexpected on the first run-through.