Files
logger/test/console.test.ts
T
mifi 16550ec8bb
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish unknown status
feat: now supports async functions for logging data
- `logger.debug('message', async () => ({ asyncReturn: await asyncFn() }))` is now supported
- NOTE: this may result in logging occurring out of band for these calls if other events fire befor they settle

Update CI labels to direct jobs to correct servers
2026-08-21 11:24:34 -03:00

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]");
});
});