Skip to content

assert.throws needs better error messages #25

@zzggbb

Description

@zzggbb
  • If a function f throws ErrorB, assert.throws(f, ErrorA) and assert.notThrows(f, ErrorA) should signify the actual (ErrorB) and expected (ErrorA) errors rather than just throwing ErrorB

  • ErrorB is also swallowed as an AssertionError, rather than its true error type. For example, if there is a TypeError inside f, the TypeError message will be thrown as an AssertionError.

const f = function() { const x = 5; x = 6; }

// what currently happens
// AssertionError: Assignment to constant variable
assert.throws(f, ErrorA);
// AssertionError: Got unwanted exception
assert.notThrows(f, ErrorA);

// what should happen
// AssertionError: you caught the wrong exception (actual: TypeError, expected: ErrorA)
assert.throws(f, ErrorA);
// AssertionError: f threw an unwanted exception (actual: TypeError, expected: ErrorA)
assert.notThrows(f, ErrorA);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions