UNPKG

@cadence-mq/core

Version:

Modern, type-safe, and performant task queue for Node.js

31 lines (26 loc) 1.4 kB
import { describe, expect, test } from 'vitest'; import { serializeError } from './errors.models'; describe('errors models', () => { describe('serializeError', () => { test('when the prodived error is a true error instance concatenates the message and the stack', () => { const error = new Error('test'); error.stack = 'Error: test\nstack'; expect(serializeError({ error })).toBe('test\n\nError: test\nstack'); }); test('objects and arrays are serialized as JSON', () => { expect(serializeError({ error: { message: 'test', stack: 'Error: test\nstack' } })).toBe('{"message":"test","stack":"Error: test\\nstack"}'); expect(serializeError({ error: ['foo', 'bar'] })).toBe('["foo","bar"]'); expect(serializeError({ error: [1, 2, 3] })).toBe('[1,2,3]'); expect(serializeError({ error: {} })).toBe('{}'); expect(serializeError({ error: [] })).toBe('[]'); }); test('when the prodived error is something else, serializes it as a string', () => { expect(serializeError({ error: 'test' })).toBe('test'); expect(serializeError({ error: 123 })).toBe('123'); expect(serializeError({ error: true })).toBe('true'); expect(serializeError({ error: false })).toBe('false'); expect(serializeError({ error: null })).toBe('null'); expect(serializeError({ error: undefined })).toBe('undefined'); }); }); });