简体   繁体   中英

Minimatch pattern for two paths where one is prefix of the other

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM