Skip to content

Comments

Make assertions throw#3246

Merged
novemberborn merged 2 commits intomainfrom
assertions-throw
Oct 22, 2023
Merged

Make assertions throw#3246
novemberborn merged 2 commits intomainfrom
assertions-throw

Conversation

@novemberborn
Copy link
Member

@novemberborn novemberborn commented Sep 10, 2023

Fixes #3201.

Assertions now throw a TestFailure error when they fail. This error is not exported or documented and should not be used or thrown manually. You cannot catch this error in order to recover from a failure, use t.try() instead.

All assertions except for throws and throwsAsync now return true when they pass. This is useful for some of the assertions in TypeScript where they can be used as a type guard.

Committing a failed t.try() result now also throws.

@novemberborn novemberborn marked this pull request as ready for review October 22, 2023 19:07
Fixes #3201.

Assertions now throw a `TestFailure` error when they fail. This error is not exported or documented and should not be used or thrown manually. You cannot catch this error in order to recover from a failure, use `t.try()` instead.

All assertions except for `throws` and `throwsAsync` now return `true` when they pass. This is useful for some of the assertions in TypeScript where they can be used as a type guard.

Committing a failed `t.try()` result now also throws.
@novemberborn novemberborn merged commit b6fbd58 into main Oct 22, 2023
@novemberborn novemberborn deleted the assertions-throw branch October 22, 2023 19:40
mergify bot added a commit to Agoric/agoric-sdk that referenced this pull request Jan 22, 2026
closes: #9083

## Description

Breaking changes in v6: https://github.com/avajs/ava/releases/tag/v6.0.0

Relevant subset:
- When tests finish, worker threads or child processes are no longer exited through proces.exit(). If your test file does not exit on its own, the test run will time out. avajs/ava#3260

- Failed assertions now throw, meaning that any subsequent code is not executed. This also impacts the type definitions. avajs/ava#3246

- [Only native errors](https://nodejs.org/api/util.html#utiltypesisnativeerrorvalue) are now considered errors by the t.throws() and t.throwsAsync() assertions. [Object.create(Error.prototype) is not a native error](https://github.com/avajs/ava/blob/v6.0.0/Object.create(Error.prototype)). avajs/ava#3229

This removes our local patches of Ava
- #7619
- #7330

### Security Considerations

none, no runtime change

### Scaling Considerations

none, no runtime change

### Documentation Considerations

none

### Testing Considerations

CI

### Upgrade Considerations

none, no runtime change
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make assertions throw

1 participant