UNPKG

opencart-manager

Version:

Node.js package helping to manage your opencart store data easily.

51 lines (50 loc) 2.11 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const change_case_1 = require("change-case"); const utils_1 = require("../utils"); const fake_mysql_driver_1 = __importDefault(require("./fake-mysql-driver")); class Database { constructor() { this.prefix = "oc_"; this.queryResponseDelay = 0; this.mocks = { select: jest.fn(), insert: jest.fn(), update: jest.fn(), delete: jest.fn(), close: jest.fn(), }; } select(table, criteria) { this.mocks.select(table, criteria); const rows = fake_mysql_driver_1.default.select(table, utils_1.snakeCasePropertyNames(criteria)); const response = rows.map((row) => utils_1.camelCasePropertyNames(row)); return utils_1.PromisifyDelay(response, this.queryResponseDelay); } insert(table, fieldset) { this.mocks.insert(table, fieldset); const response = fake_mysql_driver_1.default.insert(table, utils_1.snakeCasePropertyNames(fieldset)); return utils_1.PromisifyDelay(response, this.queryResponseDelay); } update(table, criteria, fieldset) { this.mocks.update(table, criteria, fieldset); const response = fake_mysql_driver_1.default.update(table, utils_1.snakeCasePropertyNames(criteria), utils_1.snakeCasePropertyNames(fieldset)); return utils_1.PromisifyDelay(response, this.queryResponseDelay); } delete(table, criteria) { this.mocks.delete(table, criteria); const response = fake_mysql_driver_1.default.delete(table, utils_1.snakeCasePropertyNames(criteria)); return utils_1.PromisifyDelay(response, this.queryResponseDelay); } close() { this.mocks.close(); change_case_1.snakeCase; } static import() { return fake_mysql_driver_1.default.import(); } } exports.default = Database;