feat: enhance logging capabilities, implement runtime diagnostics, and update preinstalled skills metadata
This commit is contained in:
46
tests/log-helpers.test.ts
Normal file
46
tests/log-helpers.test.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import { serializeError, serializeUnknownError, serializeUnknownForLog } from '../electron/utils/log-helpers';
|
||||
|
||||
describe('log helpers', () => {
|
||||
it('serializes Error instances with code and cause', () => {
|
||||
const cause = new Error('inner failure');
|
||||
const error = new Error('outer failure') as Error & { code?: string; cause?: unknown };
|
||||
error.code = 'E_TEST';
|
||||
error.cause = cause;
|
||||
|
||||
expect(serializeError(error)).toMatchObject({
|
||||
name: 'Error',
|
||||
message: 'outer failure',
|
||||
code: 'E_TEST',
|
||||
cause: {
|
||||
name: 'Error',
|
||||
message: 'inner failure',
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
it('normalizes string and object rejection values', () => {
|
||||
expect(serializeUnknownError('boom')).toEqual({ message: 'boom' });
|
||||
expect(serializeUnknownError({ message: 'failed', code: 500 })).toEqual({
|
||||
message: 'failed',
|
||||
code: 500,
|
||||
});
|
||||
});
|
||||
|
||||
it('recursively serializes nested error values for structured logging', () => {
|
||||
const payload = serializeUnknownForLog({
|
||||
task: 'bootstrap',
|
||||
errors: [new Error('bad dependency')],
|
||||
});
|
||||
|
||||
expect(payload).toEqual({
|
||||
task: 'bootstrap',
|
||||
errors: [
|
||||
expect.objectContaining({
|
||||
name: 'Error',
|
||||
message: 'bad dependency',
|
||||
}),
|
||||
],
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user