sinonjs/sinon

sinon not throwing the error that been thrown when the error is undefined and also fail to assert

Open

#2 471 ouverte le 11 sept. 2022

Voir sur GitHub
 (3 commentaires) (0 réactions) (0 assignés)JavaScript (764 forks)batch import
Difficulty: EasyHelp wantedwontfix

Métriques du dépôt

Stars
 (9 548 stars)
Métriques de merge PR
 (Merge moyen 6j 16h) (15 PRs mergées en 30 j)

Description

Describe the bug If the function throw undefined then:

  1. calling the function does not throw
  2. sinon.assert.threw(a); fail

To Reproduce ReplIt Link

const a = sinon.spy(() => {
  throw undefined;
});

try {
  a();
} catch (e) {
   // 1. this won't be logged
  console.log('Error has being thrown');
}

// 2. This will throw
// Uncaught AssertError: spy did not throw exception
sinon.assert.threw(a);

Expected behavior

  1. throw the thrown error
  2. the assertion should pass

As said in the docs about the 2nd thing:

sinon.assert.threw(spyOrSpyCall, exception);

Passes if spy threw the given exception.

The exception can be a String denoting its type, or an actual object.

If only one argument is provided, the assertion passes if spy ever threw any exception.

Context (please complete the following information):

  • Library version: 14.0.0
  • Environment: node

Guide contributeur