Search code examples
javascriptcypress

How to update an alias in cypress


I am not sure if I am using this correctly in cypress. What I want to do is update my alias @priceValue so I can use the updated alias later on.

This is what I mean logic wise:

1: Take the text and give it an alias of priceValue 2: Check price value to make sure it contains a string and then (and here is the issue)-> the alias is updated to a fraction by converting. string to a fraction

How do I update the alias so it's now the converted fraction?

priceElements.priceButton().first().invoke("text").as("priceValue");

cy.get("@priceValue").then((priceValue) => {
        expect(priceValue).contains("/");
        math.fraction(priceValue);
})

Solution

  • You can check this blog out, it discusses in detail how to update an alias - https://ronvalstar.nl/updating-a-cypress-alias.

    An easier way would be to wrap the value and create a new alias.

    priceElements.priceButton().first().invoke("text").as("priceValue")
    
    cy.get("@priceValue").then((priceValue) => {
      expect(priceValue).contains("/")
      cy.wrap(math.fraction(priceValue)).as("newPriceValue")
    })
    
    cy.get("@newPriceValue").then((newPriceValue) => {
      cy.log(newPriceValue)
    })