Only print the first level. For arrays/maps/objects/sets this means the
indexes/keys are printed. Presumably since we do print all statements
this provides enough context.
Format statements, generate diffs and otherwise format values when
AssertionErrors are created. Make labels contextual to the assertion.
Always print power-assert statements in mini and verbose reporters, but
after the values. Accept the duplication when the statement covers the
value passed to the assertion.
Detect whether `t.throws()` failed because no error was thrown, or because
the thrown error did not meet expectations.
Explicitly test `t.fail()` default message in assertion test.
Wrap callback errors, rejected promises or synchronously thrown values
in an `AssertionError`. Rely on the `actual` value being printed by the
reporters, which means it's still shown to the user.
Remove now obsolete `Error: ` prefix added to non-assertion errors in
`run-status.js`. Instead more helpful messages from `test.js` can be
shown.
Try to reuse the stack trace from any original error, so magic assert
can show context.
Fail `t.throws()` / `t.notThrows()` with an AssertionError if called
with an improper argument, rather than throwing a TypeError.
* Retain non-standard error properties in a cleaned `object` property
* Make AssertionError serialization more explicit
* Flag whether the serialized error came from AVA's AssertionError
* Use our own AssertionError class. Now we can track the assertion
rather than abusing the operator field. We can also stop depending on
`core-assert` once we implement `t.throws()` ourselves. Reserve the
`statements` property for power-assert output
* Directly create `AssertionError`s, making it easier to specify the
varying options
* Default the assertion message to an empty string, removing workarounds
in the mini and verbose reporters
* Improve `t.plan()` assertion errors. Specify 'plan' as the assertion,
and use `===` as the operator
* Refactor `t.throws()` and `t.notThrows()`, improving readability and
fixing #1227
* Move knowledge of when to show output into `serialize-error.js`. It
sat kind of awkwardly in `assert.js`
* Always try to format errors in mini and verbose reporters, check
if actual / expected values are available when formatting
* Wrap assertions in `assert.js` for use with the `ExecutionContext`
* Only enhance the power-assert assertions, don't use `empower-core`
to wrap the others
* Remove superfluous `empower-core` 'originalMessage' handling. Our
assertions create `AssertionError`s with the correct message
* Refactor overloaded `Test#_assert()` method and assertion tracking
internals. Note that only `t.throws()` and `notThrows()` are (possibly)
asynchronous
* Properly dump errors
* Only print actual and expected values if they're present, and strings.
This assumes they're serialized in the test workers
* Strip ANSI from actual and expected values
* Print additional name & message properties
* Determine 'at' value similar to serialize-error.js. Recompute since
here we want the full line
* Print unhandled errors using the same logic
* package-hash@^2
* Allow precompiler setup to be asynchronous
* Consistently refer to babel-config module as babelConfigHelper
* Manage Babel config using hullabaloo
Fixes#707
* Disable Babel cache when precompiling
`flow check` is easily taking 30 seconds on my development machine,
presumably it's checking too many files. Move the .flowconfig into
the flow-types test directory and only include the index.js.flow file
to improve check speed.
* Ensure Test#run() returns exit promise
This allows errors from the exit logic to propagate to the runner.
* Treat runner errors as uncaught exceptions
Errors that occur inside the runner are treated as uncaught exceptions.
This prevents them from being swallowed in the promise chain, causing
the test to hang.
* fixup! Treat runner errors as uncaught exceptions
* fixup! Treat runner errors as uncaught exceptions
* Resolve absolute source file path when serializing errors
Fixes#1270.
* Bail excerpting code if file cannot be read
* temp-write@^3.1.0
* Restrict code excerpts to tests/helpers/sources
Don't show code excerpts for dependencies or code outside the project
directory. Determine where the source lives when serializing the error.
Then, when excerpting the code, bail if it lives outside the project
or is a dependency.
* Remove double space in generated API test titles
* Improve test management in API tests
Tests don't need to be ended when a promise is returned.
Test plans are not necessary if all assertions occur within the returned
promise chain. Exceptions will still fail the test.
* Rename pkgDir to projectDir: this better communicates it's the
directory of the user's project.
* Remove unused cwd option from API.
* Remove default for resolveTestsFrom. It's confusing to see
process.cwd() in the code even though it's never actually used.
* Ensure API test properly creates the API instances.