Download __tests__/utils/event-logging-behavior.test.ts from SaylorTwift/openhands: direct link, hf CLI and curl.
- Browser
- Download file 3.03 kB
-
https://huggingface.co/SaylorTwift/openhands/resolve/main/__tests__/utils/event-logging-behavior.test.ts
- Command line
-
hf download hf://SaylorTwift/openhands/__tests__/utils/event-logging-behavior.test.ts
-
curl -L -o event-logging-behavior.test.ts https://huggingface.co/SaylorTwift/openhands/resolve/main/__tests__/utils/event-logging-behavior.test.ts
3.03 kB
| import { afterEach, describe, expect, it, vi } from "vitest"; | |
| const loadEventLogger = async (nodeEnv: string) => { | |
| vi.stubEnv("NODE_ENV", nodeEnv); | |
| vi.resetModules(); | |
| return (await import("#/utils/event-logger")).default; | |
| }; | |
| afterEach(() => { | |
| vi.restoreAllMocks(); | |
| vi.unstubAllEnvs(); | |
| vi.resetModules(); | |
| }); | |
| describe("event logging behavior", () => { | |
| it("pretty-prints parsed message data in development", async () => { | |
| const EventLogger = await loadEventLogger("development"); | |
| const warn = vi.spyOn(console, "warn").mockImplementation(() => {}); | |
| const event = new MessageEvent("message", { | |
| data: '{"status":"ready","details":{"attempt":2}}', | |
| }); | |
| EventLogger.message(event); | |
| expect(warn).toHaveBeenCalledOnce(); | |
| expect(warn).toHaveBeenCalledWith( | |
| [ | |
| "{", | |
| ' "status": "ready",', | |
| ' "details": {', | |
| ' "attempt": 2', | |
| " }", | |
| "}", | |
| ].join("\n"), | |
| ); | |
| }); | |
| it("logs a named event with the original event object in development", async () => { | |
| const EventLogger = await loadEventLogger("development"); | |
| const warn = vi.spyOn(console, "warn").mockImplementation(() => {}); | |
| const event = new Event("connection-opened"); | |
| EventLogger.event(event, "CONNECTION_OPENED"); | |
| expect(warn).toHaveBeenCalledOnce(); | |
| expect(warn).toHaveBeenCalledWith("CONNECTION_OPENED", event); | |
| }); | |
| it("uses the default name when a development event has no name", async () => { | |
| const EventLogger = await loadEventLogger("development"); | |
| const warn = vi.spyOn(console, "warn").mockImplementation(() => {}); | |
| const event = new Event("unnamed"); | |
| EventLogger.event(event); | |
| expect(warn).toHaveBeenCalledOnce(); | |
| expect(warn).toHaveBeenCalledWith("EVENT", event); | |
| }); | |
| it("routes development warnings and errors to their matching consoles", async () => { | |
| const EventLogger = await loadEventLogger("development"); | |
| const warn = vi.spyOn(console, "warn").mockImplementation(() => {}); | |
| const error = vi.spyOn(console, "error").mockImplementation(() => {}); | |
| EventLogger.warning("retrying connection"); | |
| EventLogger.error("connection failed"); | |
| expect(warn).toHaveBeenCalledOnce(); | |
| expect(warn).toHaveBeenCalledWith("retrying connection"); | |
| expect(error).toHaveBeenCalledOnce(); | |
| expect(error).toHaveBeenCalledWith("connection failed"); | |
| }); | |
| it("suppresses every logging method outside development", async () => { | |
| const EventLogger = await loadEventLogger("production"); | |
| const warn = vi.spyOn(console, "warn").mockImplementation(() => {}); | |
| const error = vi.spyOn(console, "error").mockImplementation(() => {}); | |
| EventLogger.message( | |
| new MessageEvent("message", { data: '{"status":"ignored"}' }), | |
| ); | |
| EventLogger.event(new Event("ignored"), "IGNORED"); | |
| EventLogger.warning("ignored warning"); | |
| EventLogger.error("ignored error"); | |
| expect(warn).not.toHaveBeenCalled(); | |
| expect(error).not.toHaveBeenCalled(); | |
| }); | |
| }); | |