feat(core-shared): add ILogger interface + NoopLogger

This commit is contained in:
2026-05-06 23:41:27 +02:00
parent f1051ded9b
commit fdd4e9141b
3 changed files with 69 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
import { describe, it, expect } from "vitest";
import { NoopLogger } from "@/instrumentation/noop-logger";
describe("NoopLogger", () => {
it("captureException is callable with err and ctx", () => {
const logger = new NoopLogger();
expect(() => logger.captureException(new Error("x"))).not.toThrow();
expect(() =>
logger.captureException(new Error("x"), { tags: { feature: "blog" } }),
).not.toThrow();
});
it("captureMessage is callable", () => {
const logger = new NoopLogger();
expect(() => logger.captureMessage("hello")).not.toThrow();
expect(() => logger.captureMessage("hello", "warning")).not.toThrow();
expect(() =>
logger.captureMessage("hello", "error", { extras: { foo: 1 } }),
).not.toThrow();
});
it("addBreadcrumb is callable", () => {
const logger = new NoopLogger();
expect(() =>
logger.addBreadcrumb({ category: "test", message: "x" }),
).not.toThrow();
});
it("setUser accepts opaque id and null", () => {
const logger = new NoopLogger();
expect(() => logger.setUser({ id: "u1" })).not.toThrow();
expect(() => logger.setUser(null)).not.toThrow();
});
});