Download src/logging/console-timestamp.test.ts from SaylorTwift/openclaw: direct link, hf CLI and curl.
- Browser
- Download file 1.97 kB
-
https://huggingface.co/SaylorTwift/openclaw/resolve/main/src/logging/console-timestamp.test.ts
- Command line
-
hf download hf://SaylorTwift/openclaw/src/logging/console-timestamp.test.ts
-
curl -L -o console-timestamp.test.ts https://huggingface.co/SaylorTwift/openclaw/resolve/main/src/logging/console-timestamp.test.ts
1.97 kB
| // Console timestamp tests cover timestamp prefixes for console logging. | |
| import { afterEach, describe, expect, it, vi } from "vitest"; | |
| import { formatConsoleTimestamp } from "./console.js"; | |
| describe("formatConsoleTimestamp", () => { | |
| afterEach(() => { | |
| vi.useRealTimers(); | |
| }); | |
| function pad2(n: number) { | |
| return String(n).padStart(2, "0"); | |
| } | |
| function pad3(n: number) { | |
| return String(n).padStart(3, "0"); | |
| } | |
| function formatExpectedLocalIsoWithOffset(now: Date) { | |
| const year = now.getFullYear(); | |
| const month = pad2(now.getMonth() + 1); | |
| const day = pad2(now.getDate()); | |
| const h = pad2(now.getHours()); | |
| const m = pad2(now.getMinutes()); | |
| const s = pad2(now.getSeconds()); | |
| const ms = pad3(now.getMilliseconds()); | |
| const tzOffset = now.getTimezoneOffset(); | |
| const tzSign = tzOffset <= 0 ? "+" : "-"; | |
| const tzHours = pad2(Math.floor(Math.abs(tzOffset) / 60)); | |
| const tzMinutes = pad2(Math.abs(tzOffset) % 60); | |
| return `${year}-${month}-${day}T${h}:${m}:${s}.${ms}${tzSign}${tzHours}:${tzMinutes}`; | |
| } | |
| it("pretty style returns local HH:MM:SS without timezone suffix", () => { | |
| vi.useFakeTimers(); | |
| vi.setSystemTime(new Date("2026-01-17T18:01:02.345Z")); | |
| const result = formatConsoleTimestamp("pretty"); | |
| const now = new Date(); | |
| const h = pad2(now.getHours()); | |
| const m = pad2(now.getMinutes()); | |
| const s = pad2(now.getSeconds()); | |
| expect(result).toBe(`${h}:${m}:${s}`); | |
| }); | |
| it.each(["compact", "json"] as const)( | |
| "%s style returns local ISO-like timestamp with timezone offset", | |
| (style) => { | |
| const result = formatConsoleTimestamp(style); | |
| expect(result).toMatch(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}[+-]\d{2}:\d{2}$/); | |
| vi.useFakeTimers(); | |
| vi.setSystemTime(new Date("2026-01-17T18:01:02.345Z")); | |
| const now = new Date(); | |
| expect(formatConsoleTimestamp(style)).toBe(formatExpectedLocalIsoWithOffset(now)); | |
| }, | |
| ); | |
| }); | |