39734a7467
Co-Authored-By: Claude Code <noreply@anthropic.com>
27 lines
1.1 KiB
TypeScript
27 lines
1.1 KiB
TypeScript
import { describe, it, expect } from 'vitest'
|
||
import { getDb } from '../src/db/client.js'
|
||
|
||
describe('数据库连接', () => {
|
||
it('连接本项目 PG(5434)并响应 select 1', async () => {
|
||
const db = getDb()
|
||
// postgres.js 驱动下 drizzle 的 execute 返回 RowList(行数组),
|
||
// 不是 node-postgres 风格的 { rows: [...] },故直接取 r[0]
|
||
const r = (await db.execute('select 1 as ok')) as any
|
||
expect(Number(r[0].ok)).toBe(1)
|
||
})
|
||
|
||
it('DATABASE_URL 缺失时 getDb 早失败并给出诊断信息(不静默连 localhost)', () => {
|
||
const savedTest = process.env.DATABASE_URL_TEST
|
||
const saved = process.env.DATABASE_URL
|
||
delete process.env.DATABASE_URL_TEST
|
||
delete process.env.DATABASE_URL
|
||
try {
|
||
// postgres(undefined) 会静默回退 OS 用户@localhost:5432,必须在此前置拦截
|
||
expect(() => getDb()).toThrow(/DATABASE_URL not set/)
|
||
} finally {
|
||
if (savedTest !== undefined) process.env.DATABASE_URL_TEST = savedTest
|
||
if (saved !== undefined) process.env.DATABASE_URL = saved
|
||
}
|
||
})
|
||
})
|