version.test.ts48 lines · main
| 1 | import { afterAll, beforeAll, expect, test } from 'vitest' |
| 2 | |
| 3 | import pgMeta from '../src/index' |
| 4 | import { cleanupRoot, createTestDatabase } from './db/utils' |
| 5 | |
| 6 | beforeAll(async () => { |
| 7 | // Any global setup if needed |
| 8 | }) |
| 9 | |
| 10 | afterAll(async () => { |
| 11 | await cleanupRoot() |
| 12 | }) |
| 13 | |
| 14 | const withTestDatabase = ( |
| 15 | name: string, |
| 16 | fn: (db: Awaited<ReturnType<typeof createTestDatabase>>) => Promise<void> |
| 17 | ) => { |
| 18 | test(name, async () => { |
| 19 | const db = await createTestDatabase() |
| 20 | try { |
| 21 | await fn(db) |
| 22 | } finally { |
| 23 | await db.cleanup() |
| 24 | } |
| 25 | }) |
| 26 | } |
| 27 | |
| 28 | withTestDatabase('retrieve version info', async ({ executeQuery }) => { |
| 29 | const { sql, zod } = await pgMeta.version.retrieve() |
| 30 | const res = zod.parse((await executeQuery(sql))[0]) |
| 31 | |
| 32 | expect(res).toMatchInlineSnapshot( |
| 33 | { |
| 34 | active_connections: expect.any(Number), |
| 35 | max_connections: expect.any(Number), |
| 36 | version: expect.stringMatching(/^PostgreSQL/), |
| 37 | version_number: expect.any(Number), |
| 38 | }, |
| 39 | ` |
| 40 | { |
| 41 | "active_connections": Any<Number>, |
| 42 | "max_connections": Any<Number>, |
| 43 | "version": StringMatching /\\^PostgreSQL/, |
| 44 | "version_number": Any<Number>, |
| 45 | } |
| 46 | ` |
| 47 | ) |
| 48 | }) |