opencart-manager
Version:
Node.js package helping to manage your opencart store data easily.
51 lines (50 loc) • 2.11 kB
JavaScript
;
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;