version.test.ts 1.1 KB

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