acebase/spec/tempdb.js
2022-02-18 18:15:04 +01:00

29 lines
No EOL
967 B
JavaScript

const { AceBase, ID } = require("..");
const { pfs } = require('../src/promise-fs');
module.exports = {
async createTempDB(enable = { transactionLogging: false, logLevel: 'log', config: (options) => { } }) {
// Create temp db
const dbname = 'test-' + ID.generate();
const options = { storage: { path: __dirname }, logLevel: enable.logLevel || 'verbose' };
if (enable.transactionLogging === true) {
options.transactions = { log: true };
}
if (typeof enable.config === 'function') {
enable.config(options);
}
const db = new AceBase(dbname, options);
await db.ready();
const removeDB = async () => {
// Close database
await db.close();
// Remove database
const dbdir = `${__dirname}/${dbname}.acebase`;
await pfs.rmdir(dbdir, { recursive: true });
}
return { db, removeDB };
}
}