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