Julius Marmingeback in a pretty good statefcc94b38 months agoHistory
37 lines · 1.2 KB · TypeScript
RawDownload
import fs from "node:fs";import os from "node:os";import path from "node:path"; import { describe, expect, it } from "vitest"; import { makeEventNdjsonLogger } from "./EventNdjsonLogger.ts"; describe("EventNdjsonLogger", () => {  it("writes NDJSON records to disk", () => {    const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "t3-provider-log-"));    const filePath = path.join(tempDir, "provider-native.ndjson");     try {      const logger = makeEventNdjsonLogger(filePath);      expect(logger).toBeDefined();      if (!logger) {        return;      }       logger.write({ type: "native", payload: { id: "evt-1" } });      logger.write({ type: "canonical", payload: { id: "evt-2" } });      logger.close();       const raw = fs.readFileSync(filePath, "utf8").trim();      const lines = raw.split("\n");      expect(lines.length).toBe(2);       const first = JSON.parse(lines[0] ?? "{}");      const second = JSON.parse(lines[1] ?? "{}");      expect(first).toEqual({ type: "native", payload: { id: "evt-1" } });      expect(second).toEqual({ type: "canonical", payload: { id: "evt-2" } });    } finally {      fs.rmSync(tempDir, { recursive: true, force: true });    }  });});