30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
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");
|
|
});
|
|
});
|