UNPKG

inceptum

Version:

hipages take on the foundational library for enterprise-grade apps written in NodeJS

50 lines 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const LogManager_1 = require("../log/LogManager"); const DBClient_1 = require("./DBClient"); const DBTransaction_1 = require("./DBTransaction"); const logger = LogManager_1.LogManager.getLogger(__filename); class MockDBTransaction extends DBTransaction_1.DBTransaction { constructor(mockClient) { super(null); this.mockClient = mockClient; } query(sql, ...bindArrs) { const resp = this.mockClient.hasQuery(sql, bindArrs); if (!resp) { logger.warn(`Unknown sql query called: ${sql} with params: ${JSON.stringify(bindArrs)}`); return Promise.resolve([]); } if (resp instanceof Error) { return Promise.reject(resp); } return Promise.resolve(resp); } // tslint:disable-next-line:prefer-function-over-method runQueryPrivate(sql, bindArrs) { throw new Error('Method not implemented.'); } // tslint:disable-next-line:prefer-function-over-method runQueryAssocPrivate(sql, bindObj) { throw new Error('Method not implemented.'); } // tslint:disable-next-line:prefer-function-over-method doTransactionEnd() { throw new Error('Method not implemented.'); } } exports.MockDBTransaction = MockDBTransaction; class MockDBClient extends DBClient_1.DBClient { runInTransaction(readonly, func) { return func(new MockDBTransaction(this)); } registerQuery(sql, resp, ...bindArrs) { this.registeredQueries.push({ sql, resp, bindArrs: bindArrs || [] }); } hasQuery(sql, params) { const query = this.registeredQueries.find((sq) => (sq.sql === sql) && params.length === sq.bindArrs.length && sq.bindArrs.findIndex((expected, idx) => expected !== params[idx]) >= 0); return query ? query.resp : null; } } exports.MockDBClient = MockDBClient; //# sourceMappingURL=DBTestUtil.js.map