28 lines
1.2 KiB
TypeScript
28 lines
1.2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { createEmbeddedPostgresLogBuffer, formatEmbeddedPostgresError } from "./embedded-postgres-error.js";
|
|
|
|
describe("formatEmbeddedPostgresError", () => {
|
|
it("adds a shared-memory hint when initdb logs expose the real cause", () => {
|
|
const error = formatEmbeddedPostgresError("Postgres init script exited with code 1.", {
|
|
fallbackMessage: "Failed to initialize embedded PostgreSQL cluster",
|
|
recentLogs: [
|
|
"running bootstrap script ...",
|
|
"FATAL: could not create shared memory segment: Cannot allocate memory",
|
|
"DETAIL: Failed system call was shmget(key=123, size=56, 03600).",
|
|
],
|
|
});
|
|
|
|
expect(error.message).toContain("could not allocate shared memory");
|
|
expect(error.message).toContain("kern.sysv.shm");
|
|
expect(error.message).toContain("could not create shared memory segment");
|
|
});
|
|
|
|
it("keeps only recent non-empty log lines in the collector", () => {
|
|
const buffer = createEmbeddedPostgresLogBuffer(2);
|
|
buffer.append("line one\n\n");
|
|
buffer.append("line two");
|
|
buffer.append("line three");
|
|
|
|
expect(buffer.getRecentLogs()).toEqual(["line two", "line three"]);
|
|
});
|
|
});
|