@novo-learning/novo-sdk
Version:
SDK for the Novolanguage Speech Analysis API
46 lines • 2.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const format_error_1 = require("./format-error");
describe('formatError', () => {
it('formats a standard Error object', () => {
const error = new Error('Something went wrong');
const output = (0, format_error_1.formatError)(error);
expect(output).toContain('Name: Error');
expect(output).toContain('Message: Something went wrong');
expect(output).toContain('Stacktrace:');
});
it('formats a TypeError with extra properties', () => {
const error = new TypeError('Invalid type');
error.code = 400;
const output = (0, format_error_1.formatError)(error);
expect(output).toContain('Name: TypeError');
expect(output).toContain('Message: Invalid type');
expect(output).toContain('code: 400');
});
it('handles AggregateError with nested errors', () => {
const error = new AggregateError([new Error('First'), new TypeError('Second')], 'Multiple errors');
const output = (0, format_error_1.formatError)(error);
expect(output).toContain('Name: AggregateError');
expect(output).toContain('Message: Multiple errors');
expect(output).toContain('-- Error 1 --');
expect(output).toContain('Message: First');
expect(output).toContain('-- Error 2 --');
expect(output).toContain('Message: Second');
});
it('handles non-object errors like strings', () => {
const output = (0, format_error_1.formatError)('Oops!');
expect(output).toBe('Unknown error: Oops!');
});
it('handles null and undefined', () => {
expect((0, format_error_1.formatError)(null)).toBe('Unknown error: null');
expect((0, format_error_1.formatError)(undefined)).toBe('Unknown error: undefined');
});
it('handles circular references gracefully', () => {
const error = new Error('Circular');
error.meta = {};
error.meta.self = error;
const output = (0, format_error_1.formatError)(error);
expect(output).toContain('meta: unable to stringify');
});
});
//# sourceMappingURL=format-error.spec.js.map