@electric-sql/drivers
Version:
ElectricSQL database drivers.
47 lines • 1.13 kB
JavaScript
class MockDatabase {
name;
inTransaction = false;
memory = false;
constructor(name) {
this.name = name;
}
exec(_sql) {
return this;
}
prepare(_sql) {
const mockStatement = {
database: this,
readonly: false,
source: _sql,
run: () => ({ changes: 0, lastInsertRowid: 1234 }),
get: () => ({ foo: "bar" }),
all: (...params) => {
if (typeof params[0] == "object" && params[0] && "shouldError" in params[0]) {
throw new Error("Mock query error");
}
return [{ foo: "bar" }, { foo: "baz" }];
},
iterate: () => [{ foo: "bar" }, { foo: "baz" }][Symbol.iterator]()
};
return mockStatement;
}
transaction(fn) {
const self = this;
const baseFn = (...args) => {
self.inTransaction = true;
const retval = fn(...args);
self.inTransaction = false;
return retval;
};
const txFn = baseFn;
txFn.default = baseFn;
txFn.deferred = baseFn;
txFn.immediate = baseFn;
txFn.exclusive = baseFn;
return txFn;
}
}
export {
MockDatabase
};
//# sourceMappingURL=mock.js.map