n8n/packages/workflow/test/application-error.test.ts

28 lines
947 B
TypeScript

import { ApplicationError as ErrorsApplicationError } from '@n8n/errors';
import { ApplicationError } from '../src';
// This file is the compatibility boundary, exempt from the `no-application-error` lint rule.
describe('ApplicationError compatibility shim', () => {
it('exposes the same class from `n8n-workflow` and `@n8n/errors`', () => {
expect(ApplicationError).toBe(ErrorsApplicationError);
});
it('keeps the deprecated `ApplicationError` constructor behavior', () => {
const error = new ApplicationError('boom', {
tags: { foo: 'bar' },
extra: { baz: 1 },
});
expect(error).toBeInstanceOf(Error);
expect(error.message).toBe('boom');
expect(error.level).toBe('error'); // default level
expect(error.tags).toMatchObject({ foo: 'bar' });
expect(error.extra).toEqual({ baz: 1 });
});
it('honors an explicit level', () => {
expect(new ApplicationError('x', { level: 'warning' }).level).toBe('warning');
});
});