@sprinterai/supabase 0.4.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/adapter.js +3 -3
- package/dist/auth/guards.d.ts +27 -0
- package/dist/auth/guards.d.ts.map +1 -0
- package/dist/auth/guards.js +61 -0
- package/dist/auth/guards.js.map +1 -0
- package/dist/auth/index.d.ts +6 -4
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +5 -3
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/permissions.d.ts +9 -1
- package/dist/auth/permissions.d.ts.map +1 -1
- package/dist/auth/permissions.js +13 -0
- package/dist/auth/permissions.js.map +1 -1
- package/dist/clients/admin.d.ts +3 -1
- package/dist/clients/admin.d.ts.map +1 -1
- package/dist/clients/admin.js +3 -3
- package/dist/clients/admin.js.map +1 -1
- package/dist/clients/browser.d.ts +3 -1
- package/dist/clients/browser.d.ts.map +1 -1
- package/dist/clients/browser.js +3 -3
- package/dist/clients/browser.js.map +1 -1
- package/dist/clients/index.d.ts +3 -3
- package/dist/clients/index.js +3 -3
- package/dist/clients/server.d.ts +2 -1
- package/dist/clients/server.d.ts.map +1 -1
- package/dist/clients/server.js +1 -1
- package/dist/clients/server.js.map +1 -1
- package/dist/generated/database-types.d.ts +4020 -0
- package/dist/generated/database-types.d.ts.map +1 -0
- package/dist/generated/database-types.js +97 -0
- package/dist/generated/database-types.js.map +1 -0
- package/dist/generated/index.d.ts +48 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +2 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/index.d.ts +12 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/realtime/index.d.ts +2 -2
- package/dist/realtime/index.js +1 -1
- package/dist/resolvers.d.ts +23 -0
- package/dist/resolvers.d.ts.map +1 -0
- package/dist/resolvers.js +57 -0
- package/dist/resolvers.js.map +1 -0
- package/dist/stores/activity-store.d.ts +21 -0
- package/dist/stores/activity-store.d.ts.map +1 -0
- package/dist/stores/activity-store.js +122 -0
- package/dist/stores/activity-store.js.map +1 -0
- package/dist/stores/admin-store.d.ts +27 -0
- package/dist/stores/admin-store.d.ts.map +1 -0
- package/dist/stores/admin-store.js +171 -0
- package/dist/stores/admin-store.js.map +1 -0
- package/dist/stores/agent-store.d.ts +6 -2
- package/dist/stores/agent-store.d.ts.map +1 -1
- package/dist/stores/agent-store.js +83 -6
- package/dist/stores/agent-store.js.map +1 -1
- package/dist/stores/approval-store.d.ts +19 -0
- package/dist/stores/approval-store.d.ts.map +1 -0
- package/dist/stores/approval-store.js +108 -0
- package/dist/stores/approval-store.js.map +1 -0
- package/dist/stores/chat-store.d.ts +3 -1
- package/dist/stores/chat-store.d.ts.map +1 -1
- package/dist/stores/chat-store.js +47 -36
- package/dist/stores/chat-store.js.map +1 -1
- package/dist/stores/comment-store.d.ts +13 -0
- package/dist/stores/comment-store.d.ts.map +1 -0
- package/dist/stores/comment-store.js +67 -0
- package/dist/stores/comment-store.js.map +1 -0
- package/dist/stores/cost-store.d.ts +15 -0
- package/dist/stores/cost-store.d.ts.map +1 -0
- package/dist/stores/cost-store.js +69 -0
- package/dist/stores/cost-store.js.map +1 -0
- package/dist/stores/criteria-set-store.d.ts +16 -0
- package/dist/stores/criteria-set-store.d.ts.map +1 -0
- package/dist/stores/criteria-set-store.js +127 -0
- package/dist/stores/criteria-set-store.js.map +1 -0
- package/dist/stores/document-store.d.ts +21 -0
- package/dist/stores/document-store.d.ts.map +1 -0
- package/dist/stores/document-store.js +191 -0
- package/dist/stores/document-store.js.map +1 -0
- package/dist/stores/embed-store.d.ts +11 -0
- package/dist/stores/embed-store.d.ts.map +1 -0
- package/dist/stores/embed-store.js +71 -0
- package/dist/stores/embed-store.js.map +1 -0
- package/dist/stores/entity-store.d.ts +7 -2
- package/dist/stores/entity-store.d.ts.map +1 -1
- package/dist/stores/entity-store.js +163 -37
- package/dist/stores/entity-store.js.map +1 -1
- package/dist/stores/extraction-store.d.ts +18 -0
- package/dist/stores/extraction-store.d.ts.map +1 -0
- package/dist/stores/extraction-store.js +170 -0
- package/dist/stores/extraction-store.js.map +1 -0
- package/dist/stores/factory.d.ts +29 -2
- package/dist/stores/factory.d.ts.map +1 -1
- package/dist/stores/factory.js +60 -9
- package/dist/stores/factory.js.map +1 -1
- package/dist/stores/favorites-store.d.ts +13 -0
- package/dist/stores/favorites-store.d.ts.map +1 -0
- package/dist/stores/favorites-store.js +53 -0
- package/dist/stores/favorites-store.js.map +1 -0
- package/dist/stores/feedback-store.d.ts +12 -0
- package/dist/stores/feedback-store.d.ts.map +1 -0
- package/dist/stores/feedback-store.js +59 -0
- package/dist/stores/feedback-store.js.map +1 -0
- package/dist/stores/inbound-store.d.ts +16 -0
- package/dist/stores/inbound-store.d.ts.map +1 -0
- package/dist/stores/inbound-store.js +133 -0
- package/dist/stores/inbound-store.js.map +1 -0
- package/dist/stores/index.d.ts +36 -10
- package/dist/stores/index.d.ts.map +1 -1
- package/dist/stores/index.js +35 -9
- package/dist/stores/index.js.map +1 -1
- package/dist/stores/member-store.d.ts +23 -0
- package/dist/stores/member-store.d.ts.map +1 -0
- package/dist/stores/member-store.js +121 -0
- package/dist/stores/member-store.js.map +1 -0
- package/dist/stores/memory-store.d.ts +4 -1
- package/dist/stores/memory-store.d.ts.map +1 -1
- package/dist/stores/memory-store.js +31 -3
- package/dist/stores/memory-store.js.map +1 -1
- package/dist/stores/nav-config-store.d.ts +13 -0
- package/dist/stores/nav-config-store.d.ts.map +1 -0
- package/dist/stores/nav-config-store.js +104 -0
- package/dist/stores/nav-config-store.js.map +1 -0
- package/dist/stores/notification-store.d.ts +15 -0
- package/dist/stores/notification-store.d.ts.map +1 -0
- package/dist/stores/notification-store.js +88 -0
- package/dist/stores/notification-store.js.map +1 -0
- package/dist/stores/recent-view-store.d.ts +11 -0
- package/dist/stores/recent-view-store.d.ts.map +1 -0
- package/dist/stores/recent-view-store.js +39 -0
- package/dist/stores/recent-view-store.js.map +1 -0
- package/dist/stores/response-store.d.ts +15 -0
- package/dist/stores/response-store.d.ts.map +1 -0
- package/dist/stores/response-store.js +294 -0
- package/dist/stores/response-store.js.map +1 -0
- package/dist/stores/share-store.d.ts +14 -0
- package/dist/stores/share-store.d.ts.map +1 -0
- package/dist/stores/share-store.js +153 -0
- package/dist/stores/share-store.js.map +1 -0
- package/dist/stores/shared-context-store.d.ts +12 -0
- package/dist/stores/shared-context-store.d.ts.map +1 -0
- package/dist/stores/shared-context-store.js +55 -0
- package/dist/stores/shared-context-store.js.map +1 -0
- package/dist/stores/skill-store.d.ts +21 -0
- package/dist/stores/skill-store.d.ts.map +1 -0
- package/dist/stores/skill-store.js +163 -0
- package/dist/stores/skill-store.js.map +1 -0
- package/dist/stores/source-store.d.ts +23 -0
- package/dist/stores/source-store.d.ts.map +1 -0
- package/dist/stores/source-store.js +111 -0
- package/dist/stores/source-store.js.map +1 -0
- package/dist/stores/task-store.d.ts +2 -1
- package/dist/stores/task-store.d.ts.map +1 -1
- package/dist/stores/task-store.js +58 -6
- package/dist/stores/task-store.js.map +1 -1
- package/dist/stores/template-store.d.ts +16 -0
- package/dist/stores/template-store.d.ts.map +1 -0
- package/dist/stores/template-store.js +136 -0
- package/dist/stores/template-store.js.map +1 -0
- package/dist/stores/tenant-store.d.ts +2 -1
- package/dist/stores/tenant-store.d.ts.map +1 -1
- package/dist/stores/tenant-store.js +2 -2
- package/dist/stores/tenant-store.js.map +1 -1
- package/dist/stores/theme-store.d.ts +11 -0
- package/dist/stores/theme-store.d.ts.map +1 -0
- package/dist/stores/theme-store.js +41 -0
- package/dist/stores/theme-store.js.map +1 -0
- package/dist/stores/tool-definition-store.d.ts +18 -0
- package/dist/stores/tool-definition-store.d.ts.map +1 -0
- package/dist/stores/tool-definition-store.js +129 -0
- package/dist/stores/tool-definition-store.js.map +1 -0
- package/dist/stores/tool-store.d.ts +21 -2
- package/dist/stores/tool-store.d.ts.map +1 -1
- package/dist/stores/tool-store.js +112 -2
- package/dist/stores/tool-store.js.map +1 -1
- package/dist/stores/view-store.d.ts +8 -4
- package/dist/stores/view-store.d.ts.map +1 -1
- package/dist/stores/view-store.js +94 -14
- package/dist/stores/view-store.js.map +1 -1
- package/dist/stores/webhook-endpoint-store.d.ts +18 -0
- package/dist/stores/webhook-endpoint-store.d.ts.map +1 -0
- package/dist/stores/webhook-endpoint-store.js +56 -0
- package/dist/stores/webhook-endpoint-store.js.map +1 -0
- package/dist/stores/workflow-run-store.d.ts +23 -0
- package/dist/stores/workflow-run-store.d.ts.map +1 -0
- package/dist/stores/workflow-run-store.js +201 -0
- package/dist/stores/workflow-run-store.js.map +1 -0
- package/dist/tenant/actions.js +1 -1
- package/dist/tenant/context.js +1 -1
- package/dist/tenant/index.d.ts +5 -5
- package/dist/tenant/index.js +4 -4
- package/dist/types/index.d.ts +5 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/package.json +10 -5
- package/dist/__test-utils__/mock-supabase.d.ts +0 -18
- package/dist/__test-utils__/mock-supabase.d.ts.map +0 -1
- package/dist/__test-utils__/mock-supabase.js +0 -89
- package/dist/__test-utils__/mock-supabase.js.map +0 -1
- package/dist/auth/claims.test.d.ts +0 -2
- package/dist/auth/claims.test.d.ts.map +0 -1
- package/dist/auth/claims.test.js +0 -32
- package/dist/auth/claims.test.js.map +0 -1
- package/dist/auth/permissions.test.d.ts +0 -2
- package/dist/auth/permissions.test.d.ts.map +0 -1
- package/dist/auth/permissions.test.js +0 -40
- package/dist/auth/permissions.test.js.map +0 -1
- package/dist/clients/admin.test.d.ts +0 -2
- package/dist/clients/admin.test.d.ts.map +0 -1
- package/dist/clients/admin.test.js +0 -31
- package/dist/clients/admin.test.js.map +0 -1
- package/dist/clients/browser.test.d.ts +0 -2
- package/dist/clients/browser.test.d.ts.map +0 -1
- package/dist/clients/browser.test.js +0 -29
- package/dist/clients/browser.test.js.map +0 -1
- package/dist/clients/server.test.d.ts +0 -2
- package/dist/clients/server.test.d.ts.map +0 -1
- package/dist/clients/server.test.js +0 -26
- package/dist/clients/server.test.js.map +0 -1
- package/dist/stores/agent-store.test.d.ts +0 -2
- package/dist/stores/agent-store.test.d.ts.map +0 -1
- package/dist/stores/agent-store.test.js +0 -64
- package/dist/stores/agent-store.test.js.map +0 -1
- package/dist/stores/chat-store.test.d.ts +0 -2
- package/dist/stores/chat-store.test.d.ts.map +0 -1
- package/dist/stores/chat-store.test.js +0 -83
- package/dist/stores/chat-store.test.js.map +0 -1
- package/dist/stores/entity-store.test.d.ts +0 -2
- package/dist/stores/entity-store.test.d.ts.map +0 -1
- package/dist/stores/entity-store.test.js +0 -125
- package/dist/stores/entity-store.test.js.map +0 -1
- package/dist/stores/factory.test.d.ts +0 -2
- package/dist/stores/factory.test.d.ts.map +0 -1
- package/dist/stores/factory.test.js +0 -41
- package/dist/stores/factory.test.js.map +0 -1
- package/dist/stores/memory-store.test.d.ts +0 -2
- package/dist/stores/memory-store.test.d.ts.map +0 -1
- package/dist/stores/memory-store.test.js +0 -70
- package/dist/stores/memory-store.test.js.map +0 -1
- package/dist/stores/task-store.test.d.ts +0 -2
- package/dist/stores/task-store.test.d.ts.map +0 -1
- package/dist/stores/task-store.test.js +0 -86
- package/dist/stores/task-store.test.js.map +0 -1
- package/dist/stores/tool-store.test.d.ts +0 -2
- package/dist/stores/tool-store.test.d.ts.map +0 -1
- package/dist/stores/tool-store.test.js +0 -56
- package/dist/stores/tool-store.test.js.map +0 -1
- package/dist/stores/view-store.test.d.ts +0 -2
- package/dist/stores/view-store.test.d.ts.map +0 -1
- package/dist/stores/view-store.test.js +0 -57
- package/dist/stores/view-store.test.js.map +0 -1
- package/dist/tenant/constants.test.d.ts +0 -2
- package/dist/tenant/constants.test.d.ts.map +0 -1
- package/dist/tenant/constants.test.js +0 -25
- package/dist/tenant/constants.test.js.map +0 -1
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { SupabaseChatStore } from "./chat-store";
|
|
3
|
-
import { createMockClient } from "../__test-utils__/mock-supabase";
|
|
4
|
-
describe("SupabaseChatStore", () => {
|
|
5
|
-
describe("createChat", () => {
|
|
6
|
-
it("creates a chat and returns ConversationListItem", async () => {
|
|
7
|
-
const client = createMockClient();
|
|
8
|
-
const chat = {
|
|
9
|
-
id: "chat-1",
|
|
10
|
-
title: "Test Chat",
|
|
11
|
-
chat_type: "ai",
|
|
12
|
-
created_at: "2026-01-01",
|
|
13
|
-
updated_at: "2026-01-01",
|
|
14
|
-
};
|
|
15
|
-
client.mockTable("chats", { data: chat, error: null });
|
|
16
|
-
const store = new SupabaseChatStore(client);
|
|
17
|
-
const result = await store.createChat({
|
|
18
|
-
title: "Test Chat",
|
|
19
|
-
chatType: "ai",
|
|
20
|
-
});
|
|
21
|
-
expect(result.id).toBe("chat-1");
|
|
22
|
-
expect(result.chat_type).toBe("ai");
|
|
23
|
-
expect(result.participants).toEqual([]);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
describe("getMessages", () => {
|
|
27
|
-
it("returns messages for a chat", async () => {
|
|
28
|
-
const client = createMockClient();
|
|
29
|
-
const messages = [
|
|
30
|
-
{
|
|
31
|
-
id: "m-1",
|
|
32
|
-
chat_id: "chat-1",
|
|
33
|
-
sender_type: "user",
|
|
34
|
-
content: "Hello",
|
|
35
|
-
created_at: "2026-01-01",
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
id: "m-2",
|
|
39
|
-
chat_id: "chat-1",
|
|
40
|
-
sender_type: "agent",
|
|
41
|
-
content: "Hi!",
|
|
42
|
-
created_at: "2026-01-02",
|
|
43
|
-
},
|
|
44
|
-
];
|
|
45
|
-
client.mockTable("messages", { data: messages, error: null });
|
|
46
|
-
const store = new SupabaseChatStore(client);
|
|
47
|
-
const result = await store.getMessages("chat-1");
|
|
48
|
-
expect(result).toHaveLength(2);
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
describe("saveMessage", () => {
|
|
52
|
-
it("inserts a message and updates chat timestamp", async () => {
|
|
53
|
-
const client = createMockClient();
|
|
54
|
-
const saved = {
|
|
55
|
-
id: "m-new",
|
|
56
|
-
chat_id: "chat-1",
|
|
57
|
-
sender_type: "user",
|
|
58
|
-
content: "Hello",
|
|
59
|
-
created_at: "2026-01-01",
|
|
60
|
-
};
|
|
61
|
-
client.mockTable("messages", { data: saved, error: null });
|
|
62
|
-
client.mockTable("chats", { data: null, error: null });
|
|
63
|
-
const store = new SupabaseChatStore(client);
|
|
64
|
-
const result = await store.saveMessage("chat-1", {
|
|
65
|
-
content: "Hello",
|
|
66
|
-
senderType: "user",
|
|
67
|
-
senderId: "user-1",
|
|
68
|
-
});
|
|
69
|
-
expect(result.id).toBe("m-new");
|
|
70
|
-
expect(result.content).toBe("Hello");
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
describe("getChatsByUser", () => {
|
|
74
|
-
it("returns empty array when user has no chats", async () => {
|
|
75
|
-
const client = createMockClient();
|
|
76
|
-
client.mockTable("chat_participants", { data: [], error: null });
|
|
77
|
-
const store = new SupabaseChatStore(client);
|
|
78
|
-
const result = await store.getChatsByUser("user-1");
|
|
79
|
-
expect(result).toEqual([]);
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
//# sourceMappingURL=chat-store.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chat-store.test.js","sourceRoot":"","sources":["../../src/stores/chat-store.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG;gBACX,EAAE,EAAE,QAAQ;gBACZ,KAAK,EAAE,WAAW;gBAClB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,YAAY;gBACxB,UAAU,EAAE,YAAY;aACzB,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAEvD,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;gBACpC,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG;gBACf;oBACE,EAAE,EAAE,KAAK;oBACT,OAAO,EAAE,QAAQ;oBACjB,WAAW,EAAE,MAAM;oBACnB,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,YAAY;iBACzB;gBACD;oBACE,EAAE,EAAE,KAAK;oBACT,OAAO,EAAE,QAAQ;oBACjB,WAAW,EAAE,OAAO;oBACpB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,YAAY;iBACzB;aACF,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAE9D,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEjD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG;gBACZ,EAAE,EAAE,OAAO;gBACX,OAAO,EAAE,QAAQ;gBACjB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,YAAY;aACzB,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAEvD,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE;gBAC/C,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,MAAM;gBAClB,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAClC,MAAM,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAEjE,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAEpD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity-store.test.d.ts","sourceRoot":"","sources":["../../src/stores/entity-store.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { SupabaseEntityStore } from "./entity-store";
|
|
3
|
-
import { createMockClient } from "../__test-utils__/mock-supabase";
|
|
4
|
-
describe("SupabaseEntityStore", () => {
|
|
5
|
-
describe("getEntityType", () => {
|
|
6
|
-
it("returns entity type by slug", async () => {
|
|
7
|
-
const client = createMockClient();
|
|
8
|
-
const entityType = {
|
|
9
|
-
id: "et-1",
|
|
10
|
-
slug: "opportunity",
|
|
11
|
-
name: "Opportunity",
|
|
12
|
-
};
|
|
13
|
-
client.mockTable("entity_types", { data: entityType, error: null });
|
|
14
|
-
const store = new SupabaseEntityStore(client);
|
|
15
|
-
const result = await store.getEntityType("opportunity");
|
|
16
|
-
expect(result).toEqual(entityType);
|
|
17
|
-
});
|
|
18
|
-
it("returns null when entity type not found", async () => {
|
|
19
|
-
const client = createMockClient();
|
|
20
|
-
client.mockTable("entity_types", { data: null, error: null });
|
|
21
|
-
const store = new SupabaseEntityStore(client);
|
|
22
|
-
const result = await store.getEntityType("nonexistent");
|
|
23
|
-
expect(result).toBeNull();
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
describe("listEntityTypes", () => {
|
|
27
|
-
it("returns all entity types", async () => {
|
|
28
|
-
const client = createMockClient();
|
|
29
|
-
const types = [
|
|
30
|
-
{ id: "et-1", slug: "opportunity", name: "Opportunity" },
|
|
31
|
-
{ id: "et-2", slug: "company", name: "Company" },
|
|
32
|
-
];
|
|
33
|
-
client.mockTable("entity_types", { data: types, error: null });
|
|
34
|
-
const store = new SupabaseEntityStore(client);
|
|
35
|
-
const result = await store.listEntityTypes();
|
|
36
|
-
expect(result).toHaveLength(2);
|
|
37
|
-
expect(result[0].slug).toBe("opportunity");
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
describe("getEntity", () => {
|
|
41
|
-
it("returns entity with joined entity type", async () => {
|
|
42
|
-
const client = createMockClient();
|
|
43
|
-
const entity = {
|
|
44
|
-
id: "e-1",
|
|
45
|
-
title: "Test Entity",
|
|
46
|
-
entity_type: { slug: "opportunity" },
|
|
47
|
-
};
|
|
48
|
-
client.mockTable("entities", { data: entity, error: null });
|
|
49
|
-
const store = new SupabaseEntityStore(client);
|
|
50
|
-
const result = await store.getEntity("e-1");
|
|
51
|
-
expect(result).toEqual(entity);
|
|
52
|
-
});
|
|
53
|
-
it("returns null when entity not found", async () => {
|
|
54
|
-
const client = createMockClient();
|
|
55
|
-
client.mockTable("entities", { data: null, error: null });
|
|
56
|
-
const store = new SupabaseEntityStore(client);
|
|
57
|
-
const result = await store.getEntity("nonexistent");
|
|
58
|
-
expect(result).toBeNull();
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
describe("searchEntities", () => {
|
|
62
|
-
it("returns matching entities", async () => {
|
|
63
|
-
const client = createMockClient();
|
|
64
|
-
const entities = [
|
|
65
|
-
{ id: "e-1", title: "Alpha" },
|
|
66
|
-
{ id: "e-2", title: "Also Alpha" },
|
|
67
|
-
];
|
|
68
|
-
client.mockTable("entities", { data: entities, error: null });
|
|
69
|
-
const store = new SupabaseEntityStore(client);
|
|
70
|
-
const result = await store.searchEntities("alpha");
|
|
71
|
-
expect(result).toHaveLength(2);
|
|
72
|
-
});
|
|
73
|
-
it("returns empty array when no matches", async () => {
|
|
74
|
-
const client = createMockClient();
|
|
75
|
-
client.mockTable("entities", { data: [], error: null });
|
|
76
|
-
const store = new SupabaseEntityStore(client);
|
|
77
|
-
const result = await store.searchEntities("nonexistent");
|
|
78
|
-
expect(result).toEqual([]);
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
describe("createEntity", () => {
|
|
82
|
-
it("creates an entity and logs activity", async () => {
|
|
83
|
-
const client = createMockClient();
|
|
84
|
-
const entityType = {
|
|
85
|
-
id: "et-1",
|
|
86
|
-
slug: "opportunity",
|
|
87
|
-
tenant_id: "t-1",
|
|
88
|
-
};
|
|
89
|
-
const created = {
|
|
90
|
-
id: "e-new",
|
|
91
|
-
tenant_id: "t-1",
|
|
92
|
-
title: "New Entity",
|
|
93
|
-
entity_type_slug: "opportunity",
|
|
94
|
-
};
|
|
95
|
-
// Mock entity_types for getEntityType lookup
|
|
96
|
-
client.mockTable("entity_types", { data: entityType, error: null });
|
|
97
|
-
const store = new SupabaseEntityStore(client);
|
|
98
|
-
// Override entities table to return the created entity
|
|
99
|
-
client.mockTable("entities", { data: created, error: null });
|
|
100
|
-
// Activities table just needs no error
|
|
101
|
-
client.mockTable("activities", { data: null, error: null });
|
|
102
|
-
const result = await store.createEntity({
|
|
103
|
-
typeSlug: "opportunity",
|
|
104
|
-
title: "New Entity",
|
|
105
|
-
content: { value: 100 },
|
|
106
|
-
});
|
|
107
|
-
expect(result.id).toBe("e-new");
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
describe("getEntityCounts", () => {
|
|
111
|
-
it("counts entities per type slug", async () => {
|
|
112
|
-
const client = createMockClient();
|
|
113
|
-
const entities = [
|
|
114
|
-
{ entity_type_slug: "opportunity" },
|
|
115
|
-
{ entity_type_slug: "opportunity" },
|
|
116
|
-
{ entity_type_slug: "company" },
|
|
117
|
-
];
|
|
118
|
-
client.mockTable("entities", { data: entities, error: null });
|
|
119
|
-
const store = new SupabaseEntityStore(client);
|
|
120
|
-
const counts = await store.getEntityCounts("t-1");
|
|
121
|
-
expect(counts).toEqual({ opportunity: 2, company: 1 });
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
//# sourceMappingURL=entity-store.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity-store.test.js","sourceRoot":"","sources":["../../src/stores/entity-store.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"factory.test.d.ts","sourceRoot":"","sources":["../../src/stores/factory.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { createSupabaseStores } from "./factory";
|
|
3
|
-
import { SupabaseEntityStore } from "./entity-store";
|
|
4
|
-
import { SupabaseAgentStore } from "./agent-store";
|
|
5
|
-
import { SupabaseChatStore } from "./chat-store";
|
|
6
|
-
import { SupabaseTenantStore } from "./tenant-store";
|
|
7
|
-
import { SupabaseToolStore } from "./tool-store";
|
|
8
|
-
import { SupabaseTaskStore } from "./task-store";
|
|
9
|
-
import { SupabaseMemoryStore } from "./memory-store";
|
|
10
|
-
import { SupabaseViewStore } from "./view-store";
|
|
11
|
-
import { createMockClient } from "../__test-utils__/mock-supabase";
|
|
12
|
-
describe("createSupabaseStores", () => {
|
|
13
|
-
it("creates all store instances from a single client", () => {
|
|
14
|
-
const client = createMockClient();
|
|
15
|
-
const stores = createSupabaseStores(client);
|
|
16
|
-
expect(stores.entities).toBeInstanceOf(SupabaseEntityStore);
|
|
17
|
-
expect(stores.agents).toBeInstanceOf(SupabaseAgentStore);
|
|
18
|
-
expect(stores.chat).toBeInstanceOf(SupabaseChatStore);
|
|
19
|
-
expect(stores.tenant).toBeInstanceOf(SupabaseTenantStore);
|
|
20
|
-
expect(stores.tools).toBeInstanceOf(SupabaseToolStore);
|
|
21
|
-
expect(stores.tasks).toBeInstanceOf(SupabaseTaskStore);
|
|
22
|
-
expect(stores.memory).toBeInstanceOf(SupabaseMemoryStore);
|
|
23
|
-
expect(stores.views).toBeInstanceOf(SupabaseViewStore);
|
|
24
|
-
});
|
|
25
|
-
it("returns all expected store keys", () => {
|
|
26
|
-
const client = createMockClient();
|
|
27
|
-
const stores = createSupabaseStores(client);
|
|
28
|
-
const keys = Object.keys(stores).sort();
|
|
29
|
-
expect(keys).toEqual([
|
|
30
|
-
"agents",
|
|
31
|
-
"chat",
|
|
32
|
-
"entities",
|
|
33
|
-
"memory",
|
|
34
|
-
"tasks",
|
|
35
|
-
"tenant",
|
|
36
|
-
"tools",
|
|
37
|
-
"views",
|
|
38
|
-
]);
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
//# sourceMappingURL=factory.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"factory.test.js","sourceRoot":"","sources":["../../src/stores/factory.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAE5C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAExC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACnB,QAAQ;YACR,MAAM;YACN,UAAU;YACV,QAAQ;YACR,OAAO;YACP,QAAQ;YACR,OAAO;YACP,OAAO;SACR,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store.test.d.ts","sourceRoot":"","sources":["../../src/stores/memory-store.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { SupabaseMemoryStore } from "./memory-store";
|
|
3
|
-
import { createMockClient } from "../__test-utils__/mock-supabase";
|
|
4
|
-
describe("SupabaseMemoryStore", () => {
|
|
5
|
-
describe("getUserMemories", () => {
|
|
6
|
-
it("returns memories for a user", async () => {
|
|
7
|
-
const client = createMockClient();
|
|
8
|
-
const memories = [
|
|
9
|
-
{
|
|
10
|
-
id: "m-1",
|
|
11
|
-
user_id: "user-1",
|
|
12
|
-
content: "Prefers dark mode",
|
|
13
|
-
source: "user",
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
id: "m-2",
|
|
17
|
-
user_id: "user-1",
|
|
18
|
-
content: "Focuses on PE deals",
|
|
19
|
-
source: "agent",
|
|
20
|
-
},
|
|
21
|
-
];
|
|
22
|
-
client.mockTable("user_memories", { data: memories, error: null });
|
|
23
|
-
const store = new SupabaseMemoryStore(client);
|
|
24
|
-
const result = await store.getUserMemories("user-1");
|
|
25
|
-
expect(result).toHaveLength(2);
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
describe("saveMemory", () => {
|
|
29
|
-
it("saves a new memory", async () => {
|
|
30
|
-
const client = createMockClient();
|
|
31
|
-
const memory = {
|
|
32
|
-
id: "m-new",
|
|
33
|
-
user_id: "user-1",
|
|
34
|
-
content: "New preference",
|
|
35
|
-
source: "user",
|
|
36
|
-
created_at: "2026-01-01",
|
|
37
|
-
updated_at: "2026-01-01",
|
|
38
|
-
};
|
|
39
|
-
client.mockTable("user_memories", { data: memory, error: null });
|
|
40
|
-
const store = new SupabaseMemoryStore(client);
|
|
41
|
-
const result = await store.saveMemory({
|
|
42
|
-
userId: "user-1",
|
|
43
|
-
content: "New preference",
|
|
44
|
-
source: "user",
|
|
45
|
-
});
|
|
46
|
-
expect(result.id).toBe("m-new");
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
describe("deleteMemory", () => {
|
|
50
|
-
it("deletes a memory without error", async () => {
|
|
51
|
-
const client = createMockClient();
|
|
52
|
-
client.mockTable("user_memories", { data: null, error: null });
|
|
53
|
-
const store = new SupabaseMemoryStore(client);
|
|
54
|
-
await expect(store.deleteMemory("m-1")).resolves.not.toThrow();
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
describe("searchSimilarMessages", () => {
|
|
58
|
-
it("returns matching memories via ilike fallback", async () => {
|
|
59
|
-
const client = createMockClient();
|
|
60
|
-
const memories = [
|
|
61
|
-
{ id: "m-1", content: "PE deal analysis", source: "agent" },
|
|
62
|
-
];
|
|
63
|
-
client.mockTable("user_memories", { data: memories, error: null });
|
|
64
|
-
const store = new SupabaseMemoryStore(client);
|
|
65
|
-
const result = await store.searchSimilarMessages("PE deal");
|
|
66
|
-
expect(result).toHaveLength(1);
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
//# sourceMappingURL=memory-store.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store.test.js","sourceRoot":"","sources":["../../src/stores/memory-store.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-store.test.d.ts","sourceRoot":"","sources":["../../src/stores/task-store.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { SupabaseTaskStore } from "./task-store";
|
|
3
|
-
import { createMockClient } from "../__test-utils__/mock-supabase";
|
|
4
|
-
describe("SupabaseTaskStore", () => {
|
|
5
|
-
describe("getTask", () => {
|
|
6
|
-
it("returns task by ID", async () => {
|
|
7
|
-
const client = createMockClient();
|
|
8
|
-
const task = {
|
|
9
|
-
id: "task-1",
|
|
10
|
-
title: "Review proposal",
|
|
11
|
-
status: "pending",
|
|
12
|
-
};
|
|
13
|
-
client.mockTable("tasks", { data: task, error: null });
|
|
14
|
-
const store = new SupabaseTaskStore(client);
|
|
15
|
-
const result = await store.getTask("task-1");
|
|
16
|
-
expect(result).toEqual(task);
|
|
17
|
-
});
|
|
18
|
-
it("returns null when not found", async () => {
|
|
19
|
-
const client = createMockClient();
|
|
20
|
-
client.mockTable("tasks", { data: null, error: null });
|
|
21
|
-
const store = new SupabaseTaskStore(client);
|
|
22
|
-
const result = await store.getTask("nonexistent");
|
|
23
|
-
expect(result).toBeNull();
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
describe("listTasks", () => {
|
|
27
|
-
it("returns tasks", async () => {
|
|
28
|
-
const client = createMockClient();
|
|
29
|
-
const tasks = [
|
|
30
|
-
{ id: "task-1", status: "pending" },
|
|
31
|
-
{ id: "task-2", status: "completed" },
|
|
32
|
-
];
|
|
33
|
-
client.mockTable("tasks", { data: tasks, error: null });
|
|
34
|
-
const store = new SupabaseTaskStore(client);
|
|
35
|
-
const result = await store.listTasks();
|
|
36
|
-
expect(result).toHaveLength(2);
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
describe("createTask", () => {
|
|
40
|
-
it("creates a task", async () => {
|
|
41
|
-
const client = createMockClient();
|
|
42
|
-
const task = {
|
|
43
|
-
id: "task-new",
|
|
44
|
-
title: "New task",
|
|
45
|
-
status: "pending",
|
|
46
|
-
created_at: "2026-01-01",
|
|
47
|
-
updated_at: "2026-01-01",
|
|
48
|
-
};
|
|
49
|
-
client.mockTable("tasks", { data: task, error: null });
|
|
50
|
-
const store = new SupabaseTaskStore(client);
|
|
51
|
-
const result = await store.createTask({
|
|
52
|
-
tenant_id: "t-1",
|
|
53
|
-
title: "New task",
|
|
54
|
-
description: null,
|
|
55
|
-
status: "pending",
|
|
56
|
-
assignee_type: null,
|
|
57
|
-
assignee_id: null,
|
|
58
|
-
entity_id: null,
|
|
59
|
-
parent_task_id: null,
|
|
60
|
-
metadata: null,
|
|
61
|
-
due_at: null,
|
|
62
|
-
completed_at: null,
|
|
63
|
-
created_by: "user-1",
|
|
64
|
-
});
|
|
65
|
-
expect(result.id).toBe("task-new");
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
describe("updateTask", () => {
|
|
69
|
-
it("updates a task using array pattern", async () => {
|
|
70
|
-
const client = createMockClient();
|
|
71
|
-
const updated = {
|
|
72
|
-
id: "task-1",
|
|
73
|
-
title: "Updated task",
|
|
74
|
-
status: "completed",
|
|
75
|
-
};
|
|
76
|
-
client.mockTable("tasks", { data: [updated], error: null });
|
|
77
|
-
const store = new SupabaseTaskStore(client);
|
|
78
|
-
const result = await store.updateTask("task-1", {
|
|
79
|
-
status: "completed",
|
|
80
|
-
completed_at: "2026-01-01",
|
|
81
|
-
});
|
|
82
|
-
expect(result.status).toBe("completed");
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
//# sourceMappingURL=task-store.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-store.test.js","sourceRoot":"","sources":["../../src/stores/task-store.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-store.test.d.ts","sourceRoot":"","sources":["../../src/stores/tool-store.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { SupabaseToolStore } from "./tool-store";
|
|
3
|
-
import { createMockClient } from "../__test-utils__/mock-supabase";
|
|
4
|
-
describe("SupabaseToolStore", () => {
|
|
5
|
-
describe("recordToolRun", () => {
|
|
6
|
-
it("inserts a tool run and returns it", async () => {
|
|
7
|
-
const client = createMockClient();
|
|
8
|
-
const run = {
|
|
9
|
-
id: "tr-1",
|
|
10
|
-
tenant_id: "t-1",
|
|
11
|
-
tool_slug: "web-search",
|
|
12
|
-
user_id: "user-1",
|
|
13
|
-
input: { query: "test" },
|
|
14
|
-
output: { results: [] },
|
|
15
|
-
status: "success",
|
|
16
|
-
error: null,
|
|
17
|
-
duration_ms: 150,
|
|
18
|
-
source: "web",
|
|
19
|
-
chat_id: null,
|
|
20
|
-
session_id: null,
|
|
21
|
-
created_at: "2026-01-01",
|
|
22
|
-
};
|
|
23
|
-
client.mockTable("tool_runs", { data: run, error: null });
|
|
24
|
-
const store = new SupabaseToolStore(client);
|
|
25
|
-
const result = await store.recordToolRun({
|
|
26
|
-
tenant_id: "t-1",
|
|
27
|
-
tool_slug: "web-search",
|
|
28
|
-
user_id: "user-1",
|
|
29
|
-
input: { query: "test" },
|
|
30
|
-
output: { results: [] },
|
|
31
|
-
status: "success",
|
|
32
|
-
error: null,
|
|
33
|
-
duration_ms: 150,
|
|
34
|
-
source: "web",
|
|
35
|
-
chat_id: null,
|
|
36
|
-
session_id: null,
|
|
37
|
-
});
|
|
38
|
-
expect(result.id).toBe("tr-1");
|
|
39
|
-
expect(result.tool_slug).toBe("web-search");
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
describe("getToolRuns", () => {
|
|
43
|
-
it("returns tool runs", async () => {
|
|
44
|
-
const client = createMockClient();
|
|
45
|
-
const runs = [
|
|
46
|
-
{ id: "tr-1", tool_slug: "web-search" },
|
|
47
|
-
{ id: "tr-2", tool_slug: "web-search" },
|
|
48
|
-
];
|
|
49
|
-
client.mockTable("tool_runs", { data: runs, error: null });
|
|
50
|
-
const store = new SupabaseToolStore(client);
|
|
51
|
-
const result = await store.getToolRuns({ toolSlug: "web-search" });
|
|
52
|
-
expect(result).toHaveLength(2);
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
//# sourceMappingURL=tool-store.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-store.test.js","sourceRoot":"","sources":["../../src/stores/tool-store.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG;gBACV,EAAE,EAAE,MAAM;gBACV,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,YAAY;gBACvB,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;gBACxB,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBACvB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,GAAG;gBAChB,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,YAAY;aACzB,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1D,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC;gBACvC,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,YAAY;gBACvB,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;gBACxB,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBACvB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,GAAG;gBAChB,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;YACjC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG;gBACX,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE;gBACvC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE;aACxC,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAE3D,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;YAEnE,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"view-store.test.d.ts","sourceRoot":"","sources":["../../src/stores/view-store.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { SupabaseViewStore } from "./view-store";
|
|
3
|
-
import { createMockClient } from "../__test-utils__/mock-supabase";
|
|
4
|
-
describe("SupabaseViewStore", () => {
|
|
5
|
-
describe("getView", () => {
|
|
6
|
-
it("returns view by slug", async () => {
|
|
7
|
-
const client = createMockClient();
|
|
8
|
-
const view = {
|
|
9
|
-
id: "v-1",
|
|
10
|
-
slug: "default-list",
|
|
11
|
-
name: "Default List",
|
|
12
|
-
layout: "list",
|
|
13
|
-
};
|
|
14
|
-
client.mockTable("views", { data: view, error: null });
|
|
15
|
-
const store = new SupabaseViewStore(client);
|
|
16
|
-
const result = await store.getView("default-list");
|
|
17
|
-
expect(result).toEqual(view);
|
|
18
|
-
});
|
|
19
|
-
it("returns null when view not found", async () => {
|
|
20
|
-
const client = createMockClient();
|
|
21
|
-
client.mockTable("views", { data: null, error: null });
|
|
22
|
-
const store = new SupabaseViewStore(client);
|
|
23
|
-
const result = await store.getView("nonexistent");
|
|
24
|
-
expect(result).toBeNull();
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
describe("getDefaultView", () => {
|
|
28
|
-
it("returns default view for entity type", async () => {
|
|
29
|
-
const client = createMockClient();
|
|
30
|
-
const view = {
|
|
31
|
-
id: "v-1",
|
|
32
|
-
slug: "opp-detail",
|
|
33
|
-
entity_type_slug: "opportunity",
|
|
34
|
-
is_default: true,
|
|
35
|
-
layout: "detail",
|
|
36
|
-
};
|
|
37
|
-
client.mockTable("views", { data: view, error: null });
|
|
38
|
-
const store = new SupabaseViewStore(client);
|
|
39
|
-
const result = await store.getDefaultView("opportunity", "detail");
|
|
40
|
-
expect(result).toEqual(view);
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
describe("listViews", () => {
|
|
44
|
-
it("returns all views", async () => {
|
|
45
|
-
const client = createMockClient();
|
|
46
|
-
const views = [
|
|
47
|
-
{ id: "v-1", slug: "list", layout: "list" },
|
|
48
|
-
{ id: "v-2", slug: "detail", layout: "detail" },
|
|
49
|
-
];
|
|
50
|
-
client.mockTable("views", { data: views, error: null });
|
|
51
|
-
const store = new SupabaseViewStore(client);
|
|
52
|
-
const result = await store.listViews();
|
|
53
|
-
expect(result).toHaveLength(2);
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
//# sourceMappingURL=view-store.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"view-store.test.js","sourceRoot":"","sources":["../../src/stores/view-store.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.test.d.ts","sourceRoot":"","sources":["../../src/tenant/constants.test.ts"],"names":[],"mappings":""}
|