25 lines
1009 B
TypeScript
25 lines
1009 B
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { isDatabaseConnectionUnavailableError } from "../app.js";
|
|
|
|
describe("feedback export flush error classification", () => {
|
|
it("recognizes wrapped database connection-refused errors", () => {
|
|
const error = new Error("Failed query: select ...: connect ECONNREFUSED 127.0.0.1:54329");
|
|
(error as { cause?: unknown }).cause = Object.assign(
|
|
new Error("connect ECONNREFUSED 127.0.0.1:54329"),
|
|
{ code: "ECONNREFUSED" },
|
|
);
|
|
|
|
expect(isDatabaseConnectionUnavailableError(error)).toBe(true);
|
|
});
|
|
|
|
it("does not classify ordinary feedback upload failures as database outages", () => {
|
|
expect(isDatabaseConnectionUnavailableError(new Error("upstream returned 500"))).toBe(false);
|
|
});
|
|
|
|
it("does not trust unrelated error messages that mention ECONNREFUSED", () => {
|
|
expect(isDatabaseConnectionUnavailableError(
|
|
new Error("feedback upload payload mentioned ECONNREFUSED in user content"),
|
|
)).toBe(false);
|
|
});
|
|
});
|