Resourcemanagement/test/mock-testdb.js

35 lines
888 B
JavaScript

const { sync: rimrafSync } = require("rimraf");
const Database = require("../server/database");
const { Settings } = require("../server/settings");
class TestDB {
dataDir;
constructor(dir = "./data/test") {
this.dataDir = dir;
}
async create() {
Database.initDataDir({ "data-dir": this.dataDir });
Database.dbConfig = {
type: "sqlite",
};
Database.writeDBConfig(Database.dbConfig);
await Database.connect(true);
await Database.patch();
}
async destroy() {
await Database.close();
Settings.stopCacheCleaner();
if (this.dataDir) {
try {
rimrafSync(this.dataDir);
} catch (e) {
console.error("Windows may hold file lock?");
console.error(e);
}
}
}
}
module.exports = TestDB;