import { describe, expect, it } from "vitest"; import { WEB_IMPORT_SOURCE_SAVE_ERROR, getSafeWebImportSourceError, getWebImportSourceTechnicalCode, } from "./webImportSourcesError"; describe("getSafeWebImportSourceError", () => { it("never returns the SQL statement or connector parameters to the client", () => { const databaseError = new Error( "Failed query: insert into `webImportSources` (...) values (...) params: amazon@example.fr, secret-value", ); const safeError = getSafeWebImportSourceError(databaseError); expect(safeError.code).toBe("INTERNAL_SERVER_ERROR"); expect(safeError.message).toBe(WEB_IMPORT_SOURCE_SAVE_ERROR); expect(safeError.message).not.toContain("insert into"); expect(safeError.message).not.toContain("secret-value"); }); it("retient uniquement le code du pilote, même lorsque celui-ci est imbriqué", () => { const databaseError = Object.assign(new Error("params: user@example.fr, secret-value"), { cause: { code: "ER_NO_SUCH_TABLE", message: "contains secret-value" }, }); expect(getWebImportSourceTechnicalCode(databaseError)).toBe("ER_NO_SUCH_TABLE"); }); });