import assert from "node:assert/strict"; import { describe, it } from "node:test"; import { safeFileName } from "../src/server/controllers/external-return-workbook.controller.js"; // Regression for the regex-free rewrite (ESLint no-control-regex): same output as the // former /[<>:"/\\|?*\u0000-\u001f]/g replacement. describe("safeFileName", () => { it("replaces Windows-forbidden characters", () => { assert.equal(safeFileName('ac:d"e/f\\g|h?i*j'), "a_b_c_d_e_f_g_h_i_j"); }); it("replaces ASCII control characters but keeps umlauts and spaces", () => { assert.equal(safeFileName("Büro\u0000 Nord\u001f\t"), "Büro_ Nord_"); assert.equal(safeFileName("x\u007fy"), "x\u007fy"); }); it("trims and falls back to Projekt", () => { assert.equal(safeFileName(" Haus A "), "Haus A"); assert.equal(safeFileName(" "), "Projekt"); }); });