53 lines
1.8 KiB
TypeScript
53 lines
1.8 KiB
TypeScript
import fs from "node:fs";
|
|
import os from "node:os";
|
|
import path from "node:path";
|
|
import { afterEach, describe, expect, it } from "vitest";
|
|
import { getRenameLogPath, initRenameLog, logRenameEvent, shutdownRenameLog } from "../src/main/rename-log";
|
|
|
|
const tempDirs: string[] = [];
|
|
|
|
afterEach(() => {
|
|
shutdownRenameLog();
|
|
for (const dir of tempDirs.splice(0)) {
|
|
fs.rmSync(dir, { recursive: true, force: true });
|
|
}
|
|
});
|
|
|
|
describe("rename-log", () => {
|
|
it("writes rename events to the rename log", () => {
|
|
const baseDir = fs.mkdtempSync(path.join(os.tmpdir(), "rd-rlog-"));
|
|
tempDirs.push(baseDir);
|
|
|
|
initRenameLog(baseDir);
|
|
logRenameEvent("INFO", "Auto-Rename durchgeführt", {
|
|
packageName: "Test Paket",
|
|
sourcePath: "C:\\extract\\old.mkv",
|
|
targetPath: "C:\\extract\\new.mkv"
|
|
});
|
|
|
|
const logPath = getRenameLogPath();
|
|
expect(logPath).not.toBeNull();
|
|
expect(fs.existsSync(logPath!)).toBe(true);
|
|
const content = fs.readFileSync(logPath!, "utf8");
|
|
expect(content).toContain("Rename-Log Start");
|
|
expect(content).toContain("Auto-Rename durchgeführt");
|
|
expect(content).toContain("sourcePath=C:\\extract\\old.mkv");
|
|
});
|
|
|
|
it("rotates oversized rename logs on startup", () => {
|
|
const baseDir = fs.mkdtempSync(path.join(os.tmpdir(), "rd-rlog-rotate-"));
|
|
tempDirs.push(baseDir);
|
|
|
|
const oversizedPath = path.join(baseDir, "rename.log");
|
|
fs.mkdirSync(baseDir, { recursive: true });
|
|
fs.writeFileSync(oversizedPath, "x".repeat(10 * 1024 * 1024 + 256), "utf8");
|
|
|
|
initRenameLog(baseDir);
|
|
|
|
expect(fs.existsSync(oversizedPath)).toBe(true);
|
|
expect(fs.existsSync(`${oversizedPath}.old`)).toBe(true);
|
|
const content = fs.readFileSync(oversizedPath, "utf8");
|
|
expect(content).toContain("Rename-Log Start");
|
|
});
|
|
});
|