- Add documentation for recently released changes - Update some exports to include enums
41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
import { createConsoleSink } from '../src/index';
|
|
import type { LogEvent } from '../src/index';
|
|
|
|
function event(overrides: Partial<LogEvent> = {}): LogEvent {
|
|
return {
|
|
level: 'debug',
|
|
namespace: 'API',
|
|
arguments: ['hello'],
|
|
timestamp: new Date(),
|
|
environment: 'development',
|
|
sendToSentryLogs: false,
|
|
sendToSentryIssue: false,
|
|
sendToConsole: true,
|
|
...overrides,
|
|
};
|
|
}
|
|
|
|
describe('createConsoleSink', () => {
|
|
afterEach(() => {
|
|
vi.restoreAllMocks();
|
|
});
|
|
|
|
it('appends [async] to the namespace label when event.async is set', () => {
|
|
const debug = vi.spyOn(console, 'debug').mockImplementation(() => undefined);
|
|
createConsoleSink().emit(event({ async: true }));
|
|
expect(debug).toHaveBeenCalled();
|
|
const first = debug.mock.calls[0]?.[0];
|
|
expect(String(first)).toContain('[API][async]');
|
|
});
|
|
|
|
it('omits [async] for synchronous events', () => {
|
|
const debug = vi.spyOn(console, 'debug').mockImplementation(() => undefined);
|
|
createConsoleSink().emit(event());
|
|
expect(debug).toHaveBeenCalled();
|
|
const first = debug.mock.calls[0]?.[0];
|
|
expect(String(first)).toContain('[API]');
|
|
expect(String(first)).not.toContain('[async]');
|
|
});
|
|
});
|