stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
100 lines • 3.27 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.sqliteMock = void 0;
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _betterSqlite = _interopRequireDefault(require("better-sqlite3"));
var db;
var testDbName = `foobar-${process.env.JEST_WORKER_ID ?? '0'}.db`;
var sqliteMock = exports.sqliteMock = {
open: () => {
db = new _betterSqlite.default(testDbName);
db.pragma('journal_mode = MEMORY');
db.pragma('synchronous = OFF');
return {
close: () => {
db.close();
return {
message: '',
status: 0
};
},
execute: function () {
var _ref = (0, _asyncToGenerator2.default)(function* (queryInput, params) {
var query = queryInput.trim().toLowerCase();
var stmt = db.prepare(query);
var result = [];
if (query.indexOf('select') === 0) {
var modifiedParams = params?.map(p => typeof p === 'boolean' ? Number(p) : p) || [];
result = yield new Promise(resolve => resolve(stmt.all(modifiedParams)));
return {
message: '',
rows: result,
status: 0
};
}
if (query.indexOf('pragma') === 0) {
var pragmaQueryTokens = query.split(' ');
if (pragmaQueryTokens[2] === '=') {
db.pragma(`${pragmaQueryTokens[1]} = ${pragmaQueryTokens[3]}`);
} else {
result = db.pragma(`${pragmaQueryTokens[1]}`);
}
return {
message: '',
rows: result,
status: 0
};
}
yield new Promise(resolve => {
if (params) {
var _modifiedParams = params.map(p => typeof p === 'boolean' ? Number(p) : p);
stmt.run(_modifiedParams);
} else {
stmt.run();
}
resolve(undefined);
});
return {
message: '',
rows: result,
status: 0
};
});
return function execute(_x, _x2) {
return _ref.apply(this, arguments);
};
}(),
executeBatch: function () {
var _ref2 = (0, _asyncToGenerator2.default)(function* (queriesArr) {
var _loop = function* () {
var query = queryAndParams[0];
var params = queryAndParams[1];
var stmt = db.prepare(query);
yield new Promise(resolve => {
if (params) {
var modifiedParams = params.map(p => typeof p === 'boolean' ? Number(p) : p);
stmt.run(modifiedParams);
} else {
stmt.run();
}
resolve(undefined);
});
};
for (var queryAndParams of queriesArr) {
yield* _loop();
}
return {
message: '',
staus: 0
};
});
return function executeBatch(_x3) {
return _ref2.apply(this, arguments);
};
}()
};
}
};
//# sourceMappingURL=mock.js.map