mercredi 1 juillet 2020

Testing Function to Throw an Error in Jest

I have such a function to test:

export const checkTextEmpty = stringArg => {
  if (typeof stringArg !== 'string') {
    throw new Error('Provide a string argument to checkTextEmpty function')
  }

  return stringArg.length === 0 || stringArg.trim() === ''
}

and I want to test if it throws errors properly:

it(
   'should throw an error if passed argument is not a string',
      () => {
        const notStrings = [null, 4, [], {}, undefined, -5]

        notStrings.forEach(elem => {
          expect(checkTextEmpty(elem)).toThrow(Error)
        })
      }
    )

And this is a result in my terminal:

utils.js › checkTextEmpty util › should throw an error if passed argument is not a string

    Provide a string argument to checkTextEmpty function

      117 | export const checkTextEmpty = stringArg => {
      118 |   if (typeof stringArg !== 'string') {
    > 119 |     throw new Error('Provide a string argument to checkTextEmpty function')
          |           ^
      120 |   }
      121 |
      122 |   return stringArg.length === 0 || stringArg.trim() === ''

      at checkTextEmpty (src/scripts/utils/utils.js:119:11)
      at forEach (src/scripts/utils/utils.test.js:11:18)
          at Array.forEach (<anonymous>)
      at Object.it (src/scripts/utils/utils.test.js:10:20)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 2 passed, 3 total
Snapshots:   0 total
Time:        3.918 s

How can I fix my test to make it work properly?

Aucun commentaire:

Enregistrer un commentaire