cypressmocha.jsassertshould.jsexpect.js

How to Assert from multiple possibilities in Cypress? One option could be true out of multiple


I have a scenario, where i need to put Assertion on an element's text which could be true OR pass the test case, if the any 1 value is present out of many.

Let say, an element can contain multiple status' : 'Open', 'Create', 'In Progress' any of these could be true.

How can i implement this scenario and Assert with OR logical operator or any other way?

cy.get('element').should('have.text', 'Open' | 'Create')


Solution

  • It sounds like a one-of assertion, something like the following:

    cy.get('element')
      .invoke('text')
      .should('be.oneOf', ['Open', 'Create'])
    

    To do it you need to extract the text before the assertion.

    For reference see chaijs oneOf

    Asserts that the target is a member of the given array list. However, it’s often best to assert that the target is equal to its expected value.