refactor(db): group database domain modules

This commit is contained in:
ZacharyZhang-NY committed 2026-04-22 19:24:25 -04:00
1 parent e43a89096d
commit 6da0a58769
160 files changed
+2124 -1999

No files matched your search

+20 -20
View File
@@ -26,13 +26,13 @@ describe("AppDatabase.searchMessages", () => {
db = new AppDatabase(tempDir);
db.init();
companyId = db.company.saveCompany({
companyId = db.core.company.saveCompany({
name: "Search Test Corp",
description: "Company for testing message search",
status: "active",
});
agentA = db.agents.saveAgent({
agentA = db.core.agents.saveAgent({
companyId,
name: "Agent Alpha",
role: "Engineer",
@@ -46,7 +46,7 @@ describe("AppDatabase.searchMessages", () => {
budgetMonthlyUsd: 100,
});
agentB = db.agents.saveAgent({
agentB = db.core.agents.saveAgent({
companyId,
name: "Agent Beta",
role: "Designer",
@@ -61,7 +61,7 @@ describe("AppDatabase.searchMessages", () => {
});
// Seed messages across different channels
db.messages.sendAgentMessage({
db.core.messages.sendAgentMessage({
companyId,
fromAgentId: agentA,
toAgentId: agentB,
@@ -71,7 +71,7 @@ describe("AppDatabase.searchMessages", () => {
priority: "normal",
});
db.messages.sendAgentMessage({
db.core.messages.sendAgentMessage({
companyId,
fromAgentId: agentB,
toAgentId: agentA,
@@ -81,7 +81,7 @@ describe("AppDatabase.searchMessages", () => {
priority: "normal",
});
db.messages.sendAgentMessage({
db.core.messages.sendAgentMessage({
companyId,
fromAgentId: agentA,
channel: "company",
@@ -90,7 +90,7 @@ describe("AppDatabase.searchMessages", () => {
priority: "normal",
});
db.messages.sendAgentMessage({
db.core.messages.sendAgentMessage({
companyId,
fromAgentId: agentA,
channel: "department",
@@ -100,7 +100,7 @@ describe("AppDatabase.searchMessages", () => {
priority: "urgent",
});
db.messages.sendAgentMessage({
db.core.messages.sendAgentMessage({
companyId,
fromAgentId: agentB,
channel: "department",
@@ -117,21 +117,21 @@ describe("AppDatabase.searchMessages", () => {
});
it("returns messages where body contains the query string", () => {
const results = db.messages.searchMessages(companyId, "velocity");
const results = db.core.messages.searchMessages(companyId, "velocity");
expect(results.length).toBe(1);
expect(results[0].companyId).toBe(companyId);
expect(results[0].body.toLowerCase()).toContain("velocity");
});
it("returns messages where subject contains the query string", () => {
const results = db.messages.searchMessages(companyId, "retrospective");
const results = db.core.messages.searchMessages(companyId, "retrospective");
expect(results.length).toBe(1);
expect(results[0].subject).toBe("Sprint retrospective");
});
it("escapes LIKE wildcards so % and _ match literally", () => {
// Insert a message with literal % and _ characters
db.messages.sendAgentMessage({
db.core.messages.sendAgentMessage({
companyId,
fromAgentId: agentA,
channel: "company",
@@ -141,25 +141,25 @@ describe("AppDatabase.searchMessages", () => {
});
// Search for the literal "95%"
const percentResults = db.messages.searchMessages(companyId, "95%");
const percentResults = db.core.messages.searchMessages(companyId, "95%");
expect(percentResults.length).toBe(1);
expect(percentResults[0].body).toContain("95%");
// Search for the literal "disk_io"
const underscoreResults = db.messages.searchMessages(companyId, "disk_io");
const underscoreResults = db.core.messages.searchMessages(companyId, "disk_io");
expect(underscoreResults.length).toBe(1);
expect(underscoreResults[0].body).toContain("disk_io");
});
it("scopes to a specific channel when channel param is provided", () => {
const results = db.messages.searchMessages(companyId, "approvals", { channel: "department" });
const results = db.core.messages.searchMessages(companyId, "approvals", { channel: "department" });
expect(results.length).toBe(1);
expect(results[0].channel).toBe("department");
expect(results[0].body).toContain("approvals");
});
it("scopes to channelTargetId when provided alongside channel", () => {
const results = db.messages.searchMessages(companyId, "updated", {
const results = db.core.messages.searchMessages(companyId, "updated", {
channel: "department",
channelTargetId: "design",
});
@@ -168,14 +168,14 @@ describe("AppDatabase.searchMessages", () => {
});
it("returns empty array when no matches", () => {
const results = db.messages.searchMessages(companyId, "xyznonexistentquery");
const results = db.core.messages.searchMessages(companyId, "xyznonexistentquery");
expect(results).toEqual([]);
});
it("respects the limit parameter (default 50)", () => {
// Insert 60 messages
for (let i = 0; i < 60; i++) {
db.messages.sendAgentMessage({
db.core.messages.sendAgentMessage({
companyId,
fromAgentId: agentA,
channel: "company",
@@ -186,16 +186,16 @@ describe("AppDatabase.searchMessages", () => {
}
// Default limit should be 50
const defaultResults = db.messages.searchMessages(companyId, "flood test");
const defaultResults = db.core.messages.searchMessages(companyId, "flood test");
expect(defaultResults.length).toBe(50);
// Explicit limit of 10
const limitedResults = db.messages.searchMessages(companyId, "flood test", { limit: 10 });
const limitedResults = db.core.messages.searchMessages(companyId, "flood test", { limit: 10 });
expect(limitedResults.length).toBe(10);
});
it("returns results ordered by created_at DESC (most recent first)", () => {
const results = db.messages.searchMessages(companyId, "migration");
const results = db.core.messages.searchMessages(companyId, "migration");
expect(results.length).toBeGreaterThanOrEqual(2);
for (let i = 1; i < results.length; i++) {