Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

417
Views
Cypress - Use Chance JS to generate Data and store that Data for use later

Essentially what I want to do is generate a name using ChanceJS for a test case within cypress, but in a separate file / test case I want to be able to recall that name that I generated earlier so I can select it / check it exists.

I have cut down these code snippets a fair bit so they wont make total sense.

I have tried having my own file with a constant in it called constants.js

    require('chance')
 export const constants = {
    ITEM: chance.word()
  }

and then having something like this in a test file where I add an item using the random name as its name

import { constants } from '../constants';
//Add Item
it('Add a Item', function(){
cy.pass_credentials()
cy.get('.dx-datagrid-toolbar-button > .dx-button-content > .dx-icon').click({force: true})
cy.get('[id$=_Name]').type(constants.ITEM) // using my random name for the item name
}

and then later I try to use it again to select the item in a separate file as the data I added in the previous file is now being used as part of this other piece of data

import { constants } from '../constants';
it('Add Data', function(){
cy.pass_credentials()
cy.get('[id$=_TaskId]').type(constants.ITEM)    //typing my random name in so I can select it as its now part of a drop making up this new piece of data  
cy.contains(constants.ITEM).type('{enter}')     //trying to press enter so I select my item
}

But the issue I am having is that it is generating a new random name which means im trying to select something that is not there. I'm not sure if every time I import it on a new file to be used that's what's causing it to re-generate?

I guess I could do with some pointers or a better solution to my issue.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

One way would be to generate the item the first time and save it in Cypress.env() variable and then use it through out your test. Cypress.env() can be accessed by any tests throughout and also one value would be passed to all the tests for that execution cycle.

import {constants} from '../constants'
//Add Item
it('Add a Item', function () {
  Cypress.env('uniqueItem', constants.ITEM) //Random item is set for this test run
  cy.pass_credentials()
  cy.get('.dx-datagrid-toolbar-button > .dx-button-content > .dx-icon').click({
    force: true,
  })
  cy.get('[id$=_Name]').type(Cypress.env('uniqueItem')) // types in the item
})

You test in next test suite. You don't need to call the import statements here and directly use the value using the Cypress.env('uniqueItem').

it('Add Data', function () {
  cy.pass_credentials()
  cy.get('[id$=_TaskId]').type(Cypress.env('uniqueItem'))
  cy.contains(Cypress.env('uniqueItem')).type('{enter}')
})
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!