feat(GRO-106): inbound Telnyx webhook + persistence #378

Merged
groombook-engineer[bot] merged 11 commits from feat/GRO-106-inbound-webhook into dev 2026-05-11 00:43:40 +00:00
Showing only changes of commit c7f056e38c - Show all commits
@@ -233,6 +233,13 @@ describe("handleMessageReceived", () => {
selectCallCount++;
if (selectCallCount === 1) return businessLookup;
return {
from: vi.fn().mockReturnValue({
where: vi.fn().mockReturnValue({
limit: vi.fn().mockReturnValue([{ id: "biz-1" }]),
}),
}),
})
.mockReturnValueOnce({
from: vi.fn().mockReturnValue({
where: vi.fn().mockReturnValue({
limit: vi.fn().mockReturnValue([]),
@@ -240,18 +247,17 @@ describe("handleMessageReceived", () => {
}),
};
});
mockDb.insert
.mockReturnValueOnce({
values: vi.fn().mockReturnValue({
returning: vi.fn().mockReturnValue([{ id: "conv-new", clientId: "client-1" }]),
}),
})
.mockReturnValueOnce({
values: vi.fn().mockReturnValue({
returning: vi.fn().mockReturnValue([{ id: "msg-new" }]),
}),
});
mockDb.update.mockReturnValue({
mockDb.insert.mockReturnValueOnce({
values: vi.fn().mockReturnValue({
returning: vi.fn().mockReturnValue([{ id: "client-new" }]),
}),
});
mockDb.insert.mockReturnValueOnce({
values: vi.fn().mockReturnValue({
returning: vi.fn().mockReturnValue([{ id: "conv-new", clientId: "client-new" }]),
}),
});
mockDb.update.mockReturnValueOnce({
set: vi.fn().mockReturnValue({
where: vi.fn().mockReturnValue({}),
}),
@@ -270,6 +276,7 @@ describe("handleMessageFinalized", () => {
mockDb.from.mockReset();
mockDb.where.mockReset();
mockDb.limit.mockReset();
mockDb.insert.mockReset();
mockDb.update.mockReset();
mockDb.returning.mockReset();
});