Add error-utils helper and tests

This commit is contained in:
James M. Greene
2024-03-27 22:29:17 -05:00
parent b85f2a60ec
commit 1c5932fc39
4 changed files with 90 additions and 0 deletions

38
src/error-utils.test.js Normal file
View File

@@ -0,0 +1,38 @@
const { convertErrorToAnnotationProperties } = require('./error-utils')
describe('error-utils', () => {
describe('convertErrorToAnnotationProperties', () => {
it('throws a TypeError if the first argument is not an Error instance', () => {
expect(() => convertErrorToAnnotationProperties('not an Error')).toThrow(
TypeError,
'error must be an instance of Error'
)
})
it('throws an Error if the first argument is an Error instance without a parseable stack', () => {
const error = new Error('Test error')
error.stack = ''
expect(() => convertErrorToAnnotationProperties(error)).toThrow(Error, 'Error stack is empty or unparseable')
})
it('returns an AnnotationProperties-compatible object', () => {
const result = convertErrorToAnnotationProperties(new TypeError('Test error'))
expect(result).toEqual({
title: 'TypeError',
file: __filename,
startLine: expect.any(Number),
startColumn: expect.any(Number)
})
})
it('returns an AnnotationProperties-compatible object with a custom title', () => {
const result = convertErrorToAnnotationProperties(new TypeError('Test error'), 'custom title')
expect(result).toEqual({
title: 'custom title',
file: __filename,
startLine: expect.any(Number),
startColumn: expect.any(Number)
})
})
})
})