UNPKG

web_plsql

Version:

The Express Middleware for Oracle PL/SQL

1 lines 3.27 kB
{"version":3,"file":"oracledb-mock-Dn8aHtd7.mjs","names":[],"sources":["../src/backend/util/oracledb-mock.ts"],"sourcesContent":["import type {Connection, Pool, Lob, Result, BindParameters, ExecuteOptions, DbType} from 'oracledb';\n\n// Mock implementation\nexport type ExecuteCallback = (sql: string, binds?: BindParameters) => Promise<Result<unknown>> | Result<unknown>;\nlet executeCallback: ExecuteCallback | null = null;\n\n/**\n * Test utility: Set the callback for execute calls.\n * @param cb - The callback\n */\nexport const setExecuteCallback = (cb: ExecuteCallback | null) => {\n\texecuteCallback = cb;\n};\n\n/**\n * Mock LOB class.\n */\nclass MockLob {\n\ttype: DbType | number;\n\tconstructor(type: DbType | number) {\n\t\tthis.type = type;\n\t}\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tdestroy(): void {}\n}\n\n/**\n * Mock Connection class.\n */\nclass MockConnection {\n\tasync execute<T = unknown>(sql: string, bindParams?: BindParameters, _options?: ExecuteOptions): Promise<Result<T>> {\n\t\tif (executeCallback) {\n\t\t\treturn (await executeCallback(sql, bindParams)) as Result<T>;\n\t\t}\n\t\treturn {rows: []} as Result<T>;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tasync createLob(type: DbType | number): Promise<Lob> {\n\t\treturn new MockLob(type) as unknown as Lob;\n\t}\n\n\tasync commit(): Promise<void> {\n\t\t// empty\n\t}\n\tasync rollback(): Promise<void> {\n\t\t// empty\n\t}\n\tasync release(): Promise<void> {\n\t\t// empty\n\t}\n}\n\n/**\n * Mock Pool class.\n */\nclass MockPool {\n\tconnectionsOpen = 0;\n\tconnectionsInUse = 0;\n\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tasync getConnection(): Promise<Connection> {\n\t\tthis.connectionsInUse++;\n\t\tthis.connectionsOpen = Math.max(this.connectionsOpen, this.connectionsInUse);\n\t\treturn new MockConnection() as unknown as Connection;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tasync close(_drainTime?: number): Promise<void> {\n\t\tthis.connectionsOpen = 0;\n\t\tthis.connectionsInUse = 0;\n\t}\n}\n\n/**\n * Mock createPool function.\n * @param _config - The configuration\n * @returns The pool\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nexport async function createPool(_config: unknown): Promise<Pool> {\n\treturn new MockPool() as unknown as Pool;\n}\n\n// Default export mimics oracledb module structure for test mocking\nexport default {\n\t// Constants will be merged from actual oracledb by vi.importActual in test_setup.ts\n\tcreatePool,\n\tsetExecuteCallback,\n};\n"],"mappings":";;;;;;;AAIA,IAAI,kBAA0C;;;;;AAM9C,MAAa,sBAAsB,OAA+B;AACjE,mBAAkB;;;;;AAMnB,IAAM,UAAN,MAAc;CACb;CACA,YAAY,MAAuB;AAClC,OAAK,OAAO;;CAGb,UAAgB;;;;;AAMjB,IAAM,iBAAN,MAAqB;CACpB,MAAM,QAAqB,KAAa,YAA6B,UAA+C;AACnH,MAAI,gBACH,QAAQ,MAAM,gBAAgB,KAAK,WAAW;AAE/C,SAAO,EAAC,MAAM,EAAE,EAAC;;CAIlB,MAAM,UAAU,MAAqC;AACpD,SAAO,IAAI,QAAQ,KAAK;;CAGzB,MAAM,SAAwB;CAG9B,MAAM,WAA0B;CAGhC,MAAM,UAAyB;;;;;AAQhC,IAAM,WAAN,MAAe;CACd,kBAAkB;CAClB,mBAAmB;CAGnB,MAAM,gBAAqC;AAC1C,OAAK;AACL,OAAK,kBAAkB,KAAK,IAAI,KAAK,iBAAiB,KAAK,iBAAiB;AAC5E,SAAO,IAAI,gBAAgB;;CAI5B,MAAM,MAAM,YAAoC;AAC/C,OAAK,kBAAkB;AACvB,OAAK,mBAAmB;;;;;;;;AAU1B,eAAsB,WAAW,SAAiC;AACjE,QAAO,IAAI,UAAU"}