Mock Toucan module, check captureException call

pull/31/head
Samuel Lippert 2022-08-09 10:49:41 -05:00
parent 855ce4eba4
commit ca0954a310
No known key found for this signature in database
GPG Key ID: 3762857AF8948B2C
1 changed files with 16 additions and 3 deletions

View File

@ -1,15 +1,28 @@
import { Hono } from 'hono'
import { sentry } from '../src'
const captureException = jest.fn()
jest.mock('toucan-js', () => jest.fn().mockImplementation(() => ({ captureException })))
describe('Sentry middleware', () => {
const app = new Hono()
app.use('/hello/*', sentry())
app.get('/hello/foo', (c) => c.text('foo'))
app.use('/sentry/*', sentry())
app.get('/sentry/foo', (c) => c.text('foo'))
app.get('/sentry/error', () => {
throw new Error('a catastrophic error')
})
it('Should initialize Toucan', async () => {
const res = await app.request('http://localhost/hello/foo')
const res = await app.request('http://localhost/sentry/foo')
expect(res).not.toBeNull()
expect(res.status).toBe(200)
})
it('Should report errors', async () => {
const res = await app.request('http://localhost/sentry/error')
expect(res).not.toBeNull()
expect(res.status).toBe(500)
expect(captureException).toHaveBeenCalled()
})
})