mirror of
https://github.com/simstudioai/sim.git
synced 2026-09-24 15:45:35 +08:00
improvement(mcp): bound MCP memory and lifecycle concurrency (#4751)
* improvement(mcp): bound MCP memory and lifecycle concurrency * update db mock * address comments * address comments
This commit is contained in:
@@ -97,19 +97,27 @@ export function createMockSqlOperators() {
|
||||
* ```
|
||||
*/
|
||||
const limit = vi.fn(() => Promise.resolve([] as unknown[]))
|
||||
const orderBy = vi.fn(() => Promise.resolve([] as unknown[]))
|
||||
const returning = vi.fn(() => Promise.resolve([] as unknown[]))
|
||||
const groupBy = vi.fn(() => Promise.resolve([] as unknown[]))
|
||||
const execute = vi.fn(() => Promise.resolve([] as unknown[]))
|
||||
|
||||
const forBuilder = () => {
|
||||
const terminalBuilder = () => {
|
||||
const thenable: any = Promise.resolve([] as unknown[])
|
||||
thenable.limit = limit
|
||||
thenable.orderBy = orderBy
|
||||
thenable.returning = returning
|
||||
thenable.groupBy = groupBy
|
||||
thenable.for = forClause
|
||||
return thenable
|
||||
}
|
||||
|
||||
const orderBy = vi.fn(terminalBuilder)
|
||||
const having = vi.fn(terminalBuilder)
|
||||
const groupBy = vi.fn(() => {
|
||||
const builder = terminalBuilder()
|
||||
builder.having = having
|
||||
return builder
|
||||
})
|
||||
const forBuilder = terminalBuilder
|
||||
const forClause = vi.fn(forBuilder)
|
||||
|
||||
const onConflictDoUpdate = vi.fn(() => ({ returning }) as unknown as Promise<void>)
|
||||
@@ -162,6 +170,7 @@ export const dbChainMockFns = {
|
||||
innerJoin,
|
||||
leftJoin,
|
||||
groupBy,
|
||||
having,
|
||||
execute,
|
||||
for: forClause,
|
||||
insert,
|
||||
@@ -199,9 +208,14 @@ export function resetDbChainMock(): void {
|
||||
set.mockImplementation(() => ({ where }))
|
||||
del.mockImplementation(() => ({ where }))
|
||||
limit.mockImplementation(() => Promise.resolve([] as unknown[]))
|
||||
orderBy.mockImplementation(() => Promise.resolve([] as unknown[]))
|
||||
orderBy.mockImplementation(terminalBuilder)
|
||||
returning.mockImplementation(() => Promise.resolve([] as unknown[]))
|
||||
groupBy.mockImplementation(() => Promise.resolve([] as unknown[]))
|
||||
having.mockImplementation(terminalBuilder)
|
||||
groupBy.mockImplementation(() => {
|
||||
const builder = terminalBuilder()
|
||||
builder.having = having
|
||||
return builder
|
||||
})
|
||||
execute.mockImplementation(() => Promise.resolve([] as unknown[]))
|
||||
forClause.mockImplementation(forBuilder)
|
||||
transaction.mockImplementation(async (cb: (tx: typeof dbChainMock.db) => unknown) =>
|
||||
|
||||
Reference in New Issue
Block a user