Files
AgentCompany/tests/unit/database-module-groups.test.ts
T

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 });
}
});
});