Cypress.minimatch

Cypress automatically includes minimatch and exposes it as Cypress.minimatch.

Use Cypress.minimatch to test out glob patterns against strings.

Syntax

Cypress.minimatch(target: string, pattern: string, options?: MinimatchOptions);

Usage

Correct Usage

Cypress.minimatch('/users/1/comments/2', '/users/*/comments', {
  matchBase: true,
})

Incorrect Usage

cy.minimatch() // Errors, cannot be chained off 'cy'

Examples

By default Cypress uses minimatch to test glob patterns against request URLs.

If you're struggling with writing the correct pattern you can iterate much faster by testing directly in your Developer Tools console.

// test that the glob you're writing matches the request's url

// returns true
Cypress.minimatch('/users/1/comments', '/users/*/comments', {
  matchBase: true,
})

// returns false
Cypress.minimatch('/users/1/comments/2', '/users/*/comments', {
  matchBase: true,
})

We're adding the { matchBase: true } option because under the hood Cypress actually uses that option by default.

Now let's test out ** support.

// ** matches against all downstream path segments

// returns true
Cypress.minimatch('/foo/bar/baz/123/quux?a=b&c=2', '/foo/**', {
  matchBase: true,
})

// whereas * matches only the next path segment

// returns false
Cypress.minimatch('/foo/bar/baz/123/quux?a=b&c=2', '/foo/*', {
  matchBase: false,
})

See also