t3-code-android-nightly/.repos/effect-smol/packages/sql/pg/test/SqlErrorClassification.test.ts
Julius Marminge 6f9cea00ae
chore(refs): sync Effect and Alchemy references to 4.0.1 and beta.80 (#16170)
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-05 13:22:30 -07:00

52 lines
2.1 KiB
TypeScript

import { classifySqlState } from "@effect/sql-pg/internal/sqlError"
import { assert, describe, it } from "@effect/vitest"
import type * as SqlError from "effect/sql/SqlError"
const queryFailureReason = (cause: unknown) => {
const code = typeof cause === "object" && cause !== null && "code" in cause && typeof cause.code === "string"
? cause.code
: undefined
const constraint = typeof cause === "object" && cause !== null && "constraint" in cause
? cause.constraint
: undefined
return classifySqlState(code, constraint, {
cause,
message: "Failed to execute statement",
operation: "query"
})
}
const assertUniqueViolation = (reason: SqlError.SqlErrorReason, constraint: string) => {
assert.strictEqual(reason._tag, "UniqueViolation")
if (reason._tag === "UniqueViolation") {
assert.strictEqual(reason.constraint, constraint)
}
}
describe("PostgreSQL SQLSTATE classification", () => {
it("checks 42501 before generic 42*", () => {
assert.strictEqual(queryFailureReason({ code: "42501" })._tag, "AuthorizationError")
assert.strictEqual(queryFailureReason({ code: "42P01" })._tag, "SqlSyntaxError")
})
it("falls back to UnknownError for unmapped SQLSTATE", () => {
assert.strictEqual(queryFailureReason({ code: "ZZZZZ" })._tag, "UnknownError")
})
it("classifies 23505 as UniqueViolation and trims the constraint name", () => {
assertUniqueViolation(queryFailureReason({ code: "23505", constraint: " users_email_key " }), "users_email_key")
})
it("uses unknown for missing, non-string, or blank unique violation constraints", () => {
assertUniqueViolation(queryFailureReason({ code: "23505" }), "unknown")
assertUniqueViolation(queryFailureReason({ code: "23505", constraint: 123 }), "unknown")
assertUniqueViolation(queryFailureReason({ code: "23505", constraint: " " }), "unknown")
})
it("keeps non-unique integrity constraints classified as ConstraintError", () => {
assert.strictEqual(
queryFailureReason({ code: "23503", constraint: "orders_user_id_fkey" })._tag,
"ConstraintError"
)
})
})