microsoft / microsoft/typespec
testing: expectDiagnostics() should provide an option to ignore ordering
- Dominant language
- Java
- Stars
- 5.9k
- Forks
- 394
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 104
Description
### Clear and concise description of the problem
# Overview
Code churn can easily cause diagnostics to appear in changing orders over time, and this should, in general, not be considered a breaking change.
However, library tests that use this helper function will fail when diagnostic order changes.
It's onerous for every library test author to have to add a wrapper to pre-sort the collections; rather the core library should have a mode that enables this with a simple binary switch, as an addition to the `options` object.
The existing strict option could be used, but that would technically be a behavioral breaking change to the test condition.
# Current
``` typescript
compiler/expect.ts/expectDiagnostics(
diagnostics: readonly Diagnostic[],
match: DiagnosticMatch | DiagnosticMatch[],
options = {
strict: true,
});
```
# Expected
``` typescript
compiler/expect.ts/expectDiagnostics(
diagnostics: readonly Diagnostic[],
match: DiagnosticMatch | DiagnosticMatch[],
options = {
strict: true,
fixedOrder: true
});
```
### Checklist
- [x] Follow our [Code of Conduct](https://github.com/microsoft/typespec/blob/main/CODE_OF_CONDUCT.md)
- [x] Read the [docs](https://typespec.io/docs/).
- [x] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
Contributor guide
Assessment
This issue has not been assessed yet.