Home > database >  Variable 'email' should not be initialized on declaration
Variable 'email' should not be initialized on declaration

Time:05-26

I'm trying to create a random generator for emails in my cypress code

this is my exemple :

export function userEmail(): string {
  let email = "",
    domainName = "",
    possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

  for (let i = 0; i < tabSize9; i  )
    email  = possible.charAt(Math.floor(Math.random() * possible.length));

  domainName  = possible.charAt(Math.floor(Math.random() * possible.length));

  return `${email}@${domainName}.com`;
}

it's working for me as well , but the problem is when i lunch my eslint script , it says to me that the variable email should not be initialized on declaration , even my domainName variable

Any help !

thank you in advance

CodePudding user response:

Just split the declarations on 3 different lines

let email = "";
let domainName = "";
let possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

CodePudding user response:

You try this :

export function userEmail(): string {
 const possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
 let email = "";
 let domainName = "";
  for (let i = 0; i < tabSize9; i  ){
    email  = possible.charAt(Math.floor(Math.random() * possible.length));
    domainName  = possible.charAt(Math.floor(Math.random() * possible.length));
  }
  return `${email}@${domainName}.com`;
}

CodePudding user response:

You can also use faker.js to generate random emails.

  1. Install faker js with npm install @faker-js/faker --save-dev

  2. In order to have faker working properly, you need to check if these compilerOptions are set correctly in your tsconfig file:

{
  "compilerOptions": {
    "esModuleInterop": true,
    "moduleResolution": "Node"
  }
}
  1. In your test
import { faker } from '@faker-js/faker';

export function userEmail(): string {
  return faker.internet.email();
}

You can play around with what type of random emails you want to generate. Like if you want to keep the domain name or first, the last name constant etc. Refer Faker Js Document

faker.internet.email(firstName?: string, lastName?: string, provider?: string, options?: {
  allowSpecialCharacters: boolean
} = { allowSpecialCharacters: false }): string
faker.internet.email() // => "[email protected]"
faker.internet.email() // '[email protected]'
faker.internet.email('Jeanne', 'Doe') // '[email protected]'
faker.internet.email('Jeanne', 'Doe', 'example.fakerjs.dev') // '[email protected]'
faker.internet.email('Jeanne', 'Doe', 'example.fakerjs.dev', { allowSpecialCharacters: true }) // 'Jeanne%[email protected]'
  • Related