Skip to main content

access cypress dataTable key and values

I am learning Cypress with BDD, I have little knowledge of it.

I have data table like below:

Scenario: Verify data table
    Given I can get values to corresponding keys
      | Key                              | Value         |
      | Hello                            | World         |
      | Foo                              | Bar           |
      | John                             | Doe           |
     

I wrote a function to get values for corresponding keys.

getDataTableValue(dataTable, keyValue){
        let valueIs;
        dataTable.hashes().forEach((element) => {
            if (element.Key === 'Foo') {
                valueIs = element.Value;
            }
        });   
        return valueIs;
    }

Now when I am calling this function, it always return top value i.e. "World"

cy.log(getDataTableValue(dataTable, "Foo"));

However when I run:

dataTable.hashes().forEach((element) => {
            cy.log(element.Value);
        });

it works fine, it prints World, Bar, Doe

My expectation from for each loop is that -

element starts at index 0 for that index it finds Key, if that key value is matching then for that index element will give me Value.

Why it is not working as per expectations? How can I fix this?

Via Active questions tagged javascript - Stack Overflow https://ift.tt/RIXwFcQ

Comments