Home > Mobile >  How to use Chai-jQuery's expect().to.match() assertion in Cypress? The BDD assertion with the s
How to use Chai-jQuery's expect().to.match() assertion in Cypress? The BDD assertion with the s

Time:05-26

I want to use the Chai-jQuery .match assertion:

// from Cypress docs: 
// match(selector)  
expect($emptyEl).to.match(':empty')

But the problem is, that a BDD Assertion with the same name exists:

// from Cypress docs: 
// match(RegExp)
expect('testing').to.match(/^test/)

I want to use the first one, but I can't figure out how - each time the BDD assertion gets used instead and throws an error. For example:

expect(cy.get('div')).to.match('#someId')

match requires its argument be a RegExp. You passed: #someId

I tried passing many different things into the expect() call in hopes of triggering a different overload, but I always get this error.

So what do I need to do to use the Chai-jQuery .match aseertion?

CodePudding user response:

I think Cypress choses the .match() version from the value in the expect() part.

With this fragment

<div id="someId">some text</div>

this will pass

cy.get('div').then($el => {
  expect($el).to.match('#someId')  
})

cy.get('div').should('match', '#someId')

cy.get('div').invoke('text').should('match', /some text/)

  • Related