Files
wifi-densepose/npm/packages/ruvbot/tests/mocks/postgres.mock.d.ts
ruv d803bfe2b1 Squashed 'vendor/ruvector/' content from commit b64c2172
git-subtree-dir: vendor/ruvector
git-subtree-split: b64c21726f2bb37286d9ee36a7869fef60cc6900
2026-02-28 14:39:40 -05:00

106 lines
3.0 KiB
TypeScript

/**
* PostgreSQL Mock Module
*
* Mock implementations for Postgres database operations
* Supports transaction testing and query validation
*/
export interface QueryResult<T = unknown> {
rows: T[];
rowCount: number;
command: string;
fields: FieldInfo[];
}
export interface FieldInfo {
name: string;
dataTypeID: number;
}
export interface PoolConfig {
host: string;
port: number;
database: string;
user: string;
password: string;
max?: number;
idleTimeoutMillis?: number;
}
export interface PoolClient {
query<T = unknown>(text: string, values?: unknown[]): Promise<QueryResult<T>>;
release(): void;
}
interface MockDataStore {
agents: Map<string, unknown>;
sessions: Map<string, unknown>;
memories: Map<string, unknown>;
skills: Map<string, unknown>;
tenants: Map<string, unknown>;
tasks: Map<string, unknown>;
}
/**
* Mock PostgreSQL Pool
*/
export declare class MockPool {
private config;
private connected;
private dataStore;
private queryLog;
private transactionActive;
constructor(config: PoolConfig);
connect(): Promise<PoolClient>;
query<T = unknown>(text: string, values?: unknown[]): Promise<QueryResult<T>>;
end(): Promise<void>;
isConnected(): boolean;
getQueryLog(): Array<{
text: string;
values?: unknown[];
timestamp: Date;
}>;
clearQueryLog(): void;
seedData(table: keyof MockDataStore, data: Array<{
id: string;
[key: string]: unknown;
}>): void;
getData(table: keyof MockDataStore): unknown[];
private createClient;
private logQuery;
private executeQuery;
private handleSelect;
private handleInsert;
private handleUpdate;
private handleDelete;
private extractTableName;
private createResult;
}
/**
* Create a mock pool instance
*/
export declare function createMockPool(config?: Partial<PoolConfig>): MockPool;
/**
* Mock Pool factory for dependency injection
*/
export declare const mockPoolFactory: {
create: import("vitest").Mock<[config: PoolConfig], MockPool>;
createClient: import("vitest").Mock<[config: PoolConfig], Promise<PoolClient>>;
};
/**
* Postgres query builder mock helpers
*/
export declare const queryBuilderHelpers: {
expectQuery: (pool: MockPool, pattern: RegExp) => boolean;
expectQueryCount: (pool: MockPool, pattern: RegExp) => number;
expectTransaction: (pool: MockPool) => boolean;
};
declare const _default: {
MockPool: typeof MockPool;
createMockPool: typeof createMockPool;
mockPoolFactory: {
create: import("vitest").Mock<[config: PoolConfig], MockPool>;
createClient: import("vitest").Mock<[config: PoolConfig], Promise<PoolClient>>;
};
queryBuilderHelpers: {
expectQuery: (pool: MockPool, pattern: RegExp) => boolean;
expectQueryCount: (pool: MockPool, pattern: RegExp) => number;
expectTransaction: (pool: MockPool) => boolean;
};
};
export default _default;
//# sourceMappingURL=postgres.mock.d.ts.map