Files
FastGPT/test/mocks/common/mongo.ts
T
Jon 57a505f837 Agent skill dev (#6668)
* chore: Rename service & container names for consistency in Docker configs (#6710)

* chore: Rename container names for consistency in Docker configs

* chore: Rename service names for consistency in Docker configs

chore: Update OpenSandbox versions and image repositories (#6709)

* chore: Update OpenSandbox versions and image repositories

* yml version

* images

* init yml

* port

---------

Co-authored-by: archer <545436317@qq.com>

refactor(chat): optimize sandbox status logic and decouple UI/Status hooks (#6713)

* refactor(chat): optimize sandbox status logic and decouple UI/Status hooks

* fix: useRef, rename onClose to afterClose

Update .env.template (#6720)

aiproxy默认的请求地址改成http协议

feat: comprehensive agent skill management and sandbox infrastructure optimization

- Skill System: Implemented a full skill management module including CRUD operations, folder organization, AI-driven skill generation, and versioning (switch/update).
- Sandbox Infrastructure: Introduced 'volume-manager' for PVC and Docker volume lifecycle management, replacing the MinIO sync-agent for better data persistence.
- Workflow Integration: Enhanced the Agent node to support skill selection and configuration, including new UI components and data normalization.
- Permission Management: Added granular permission controls for skills, supporting collaborators, owner transfers, and permission inheritance.
- UI/UX: Added a dedicated Skill dashboard, sandbox debug interface (terminal, logs, and iframe proxy), and comprehensive i18n support.
- Maintenance: Migrated Docker services to named volumes, optimized sandbox instance limits, and improved error handling for sandbox providers.

Co-authored-by: chanzhi82020 <chenzhi@sangfor.com.cn>
Co-authored-by: lavine77
Signed-off-by: Jon <ljp@sangfor.com.cn>

feat: hide skill

prettier

* perf: hide skill code

* fix: ts

* lock

* perf: tool code

* fix: ts

* lock

* fix: test

* fix: openapi

* lock

* fix: test

* null model

---------

Co-authored-by: archer <545436317@qq.com>
2026-04-07 22:52:03 +08:00

33 lines
1.0 KiB
TypeScript

import { vi } from 'vitest';
import { randomUUID } from 'crypto';
import type { Mongoose } from '@fastgpt/service/common/mongo';
/**
* Mock MongoDB connection for testing
* Creates a unique database for each test run and drops it on connection
*/
vi.mock(import('@fastgpt/service/common/mongo/init'), async (importOriginal: any) => {
const mod = await importOriginal();
return {
...mod,
connectMongo: async (props: { db: Mongoose; url: string; connectedCb?: () => void }) => {
const { db, url } = props;
await db.connect(url, { dbName: randomUUID(), retryWrites: false });
await db.connection.db?.dropDatabase();
}
};
});
/**
* Mock mongoSessionRun to avoid transaction issues in tests
* MongoDB transactions require replica set, which may not be available in test environment
*/
vi.mock(import('@fastgpt/service/common/mongo/sessionRun'), async () => {
return {
mongoSessionRun: vi.fn(async (fn) => {
// Execute the function without a real session
return await fn(null as any);
})
};
});