UNPKG

supabase-test

Version:

supabase-test offers isolated, role-aware, and rollback-friendly PostgreSQL environments for integration tests — giving developers realistic test coverage without external state pollution

50 lines (49 loc) 2.03 kB
import { Client, QueryResult } from 'pg'; import { PgConfig } from 'pg-env'; import { AuthOptions, PgTestConnectionOptions } from '@launchql/types'; export type PgTestClientOpts = { deferConnect?: boolean; trackConnect?: (p: Promise<any>) => void; } & Partial<PgTestConnectionOptions>; export declare class PgTestClient { config: PgConfig; client: Client; private opts; private ctxStmts; private contextSettings; private _ended; private connectPromise; constructor(config: PgConfig, opts?: PgTestClientOpts); private ensureConnected; close(): Promise<void>; begin(): Promise<void>; savepoint(name?: string): Promise<void>; rollback(name?: string): Promise<void>; commit(): Promise<void>; beforeEach(): Promise<void>; afterEach(): Promise<void>; setContext(ctx: Record<string, string | null>): void; /** * Set authentication context for the current session. * Configures role and user ID using cascading defaults from options → opts.auth → RoleMapping. */ auth(options?: AuthOptions): void; /** * Commit current transaction to make data visible to other connections, then start fresh transaction. * Maintains test isolation by creating a savepoint and reapplying session context. */ publish(): Promise<void>; /** * Clear all session context variables and reset to default anonymous role. */ clearContext(): void; any<T = any>(query: string, values?: any[]): Promise<T[]>; one<T = any>(query: string, values?: any[]): Promise<T>; oneOrNone<T = any>(query: string, values?: any[]): Promise<T | null>; many<T = any>(query: string, values?: any[]): Promise<T[]>; manyOrNone<T = any>(query: string, values?: any[]): Promise<T[]>; none(query: string, values?: any[]): Promise<void>; result(query: string, values?: any[]): Promise<import('pg').QueryResult>; query<T = any>(query: string, values?: any[]): Promise<QueryResult<T>>; ctxQuery(): Promise<void>; }