Reputation: 311
I'm doing a test and I put a value in a texfield. If I get some data I want it to be found, otherwise I want "no data" to be found. This code doesn't work... Why? And how can I do it?
it('Test on filter', function () {
const valueInserted = 'VALUE';
cy.get('#autorouter-patname').type(valueInserted);
cy.get('button[type="submit"]'.click();
cy.get('tbody>tr>td')
.then(($el) => {
if (cy.get($el).contains('No data available')) {
return cy.contains('No data available')
} else {
return cy.get($el).eq(2).contains(valueInserted);
}
})
})
Upvotes: 0
Views: 546
Reputation: 462
You are trying to use the contains
command from cypress to get a boolean, but it acts like an assertion itself. It tries to search something that contains the provided text and if gets no results, the test fails.
I am doing conditional testing like this:
cy.get('body').then(($body) => {
if ($body.find('._md-nav-button:contains("' + name + '")').length > 0) {
cy.contains('._md-nav-button', name).click();
}
});
Upvotes: 2