Raven test kit module to enable reports to sentry in tests without really sending the report
npm install raven-testkit

!GitHub
!Hackage-Deps
Raven is a JavaScript SDK published by Sentry.io to enable software flow tracking and issues reporting to the Sentry system.
However, when building tests for your application, you want to assert that the right flow-tracking or error is being sent to Sentry, but without really sending it to the Sentry system. This way you won't swamp it with false reports during test running and other CI operations.
npm install raven-testkit --save-dev
`
$3
`javascript
// CommonJS
const testKitInitializer = require('raven-testkit')// ES6 Modules
import testKitInitializer from 'raven-testkit'
`
$3
`javascript
const testKit = testKitInitializer(Raven)// any scenario that should call Raven.catchException(...)
expect(testKit.reports()).toHaveLength(1)
const report = testKit.reports()[0]
expect(report).toHaveProperty('release', 'test')
`
#### Pass your own shouldSendCallback logic
`javascript
const shouldSendCallback = data => {
return / your own logic /
}
const testKit = testKitInitializer(Raven, shouldSendCallback)
`You may see more example usage in the testing section of this repository as well.
Test Kit API
$3
Get all existing reports.Kind: instance function
Returns: Array - where each member of the array consists of
Raven's data object.
See: You may refer to the Sentry Docs for further explanation and details.
$3
Reset the teskit state and clear all existing reports.$3
Extract the exception object of a given report.Returns: Object - the exception object as built by
Raven| Param | Type | Description |
| --- | --- | --- |
| report | Object | report object. |
$3
Extract the exception object of a report in a specific position.Returns: Object - the exception object as built by
Raven| Param | Type | Description |
| --- | --- | --- |
| index | number | index position of the report |
$3
Find a report by a given error.Returns: Object \| undefined - the report object if one found.
undefined otherwise
See: Uses Array.prototype.find| Param | Type | Description |
| --- | --- | --- |
| error | Error | error to look for in the reports |
$3
check whether a given error exist (i.e. has been reported)Returns: Boolean -
true if the error exists. false otherwise| Param | Type | Description |
| --- | --- | --- |
| error | Error | the error to look for in the reports |
Gotcha(s)
* if you set the shouldSendCallback hook in your Raven configuration, make sure to call the testKitInitializer(Raven) function after your code has finished configuring Raven. You need to do this because we call Raven.setShouldSendCallback to ensure the proper functionality of the Raven lifecycle so you need to call the testKitInitializer(Raven) only after Raven is configured.
See the documentation above if you want to pass your own shouldSendCallback logic to raven-testkit.
* Configure Raven to allow duplicates as otherwise the same dummy error will only be reported once. Raven.config(dummyDsn, { allowDuplicates: true })` (Documentation)