79 lines
1.8 KiB
TypeScript
79 lines
1.8 KiB
TypeScript
import { mkdtempSync, rmSync } from "node:fs";
|
|
import { tmpdir } from "node:os";
|
|
import { join } from "node:path";
|
|
import { describe, expect, it } from "vitest";
|
|
import { AppDatabase } from "../../src/main/database";
|
|
|
|
const FLAT_MODULE_KEYS = [
|
|
"threads",
|
|
"company",
|
|
"agents",
|
|
"tasks",
|
|
"messages",
|
|
"runs",
|
|
"snap",
|
|
"settings",
|
|
"connectorsCrud",
|
|
"workspacesMod",
|
|
"approvalsMod",
|
|
"social",
|
|
"activityMod",
|
|
"skills",
|
|
"budget",
|
|
"entityCrud",
|
|
"documentsMod",
|
|
"automationMod",
|
|
"knowledgeMod",
|
|
"wakeup",
|
|
"backupMod",
|
|
"sessionEntries",
|
|
"inboxProjections",
|
|
"documentLifecycleEvents",
|
|
"credentialsTable",
|
|
"modelCapabilities",
|
|
];
|
|
|
|
describe("AppDatabase module groups", () => {
|
|
it("exposes domain modules through grouped namespaces", () => {
|
|
const dir = mkdtempSync(join(tmpdir(), "agentcompany-db-groups-"));
|
|
const db = new AppDatabase(dir);
|
|
try {
|
|
expect(Object.keys(db.core).sort()).toEqual([
|
|
"activity",
|
|
"agents",
|
|
"approvals",
|
|
"backup",
|
|
"budget",
|
|
"company",
|
|
"connectors",
|
|
"credentials",
|
|
"documents",
|
|
"entity",
|
|
"knowledge",
|
|
"messages",
|
|
"modelCapabilities",
|
|
"runs",
|
|
"settings",
|
|
"skills",
|
|
"social",
|
|
"tasks",
|
|
"threads",
|
|
"workspaces",
|
|
]);
|
|
expect(Object.keys(db.automation).sort()).toEqual(["rules", "wakeup"]);
|
|
expect(Object.keys(db.projection).sort()).toEqual([
|
|
"documentLifecycleEvents",
|
|
"inbox",
|
|
"sessionEntries",
|
|
"snapshot",
|
|
]);
|
|
for (const key of FLAT_MODULE_KEYS) {
|
|
expect(Object.prototype.hasOwnProperty.call(db, key)).toBe(false);
|
|
}
|
|
} finally {
|
|
db.close();
|
|
rmSync(dir, { recursive: true, force: true });
|
|
}
|
|
});
|
|
});
|