4.8.11 test (#2843)

* feat: app version test

* update doc

* fix: paging num error

* fix: doc api domain

* rename variable

* perf: memment node min size
This commit is contained in:
Archer
2024-09-30 17:28:03 +08:00
committed by GitHub
parent 7c829febec
commit 7c38d1da9a
39 changed files with 427 additions and 179 deletions

View File

@@ -57,11 +57,25 @@ jest.mock('@/service/middleware/entry', () => {
});
beforeAll(async () => {
// 新建一个内存数据库,然后让 mongoose 连接这个数据库
if (!global.mongod || !global.mongodb) {
const mongod = await MongoMemoryServer.create();
global.mongod = mongod;
global.mongodb = mongoose;
await global.mongodb.connect(mongod.getUri());
await global.mongodb.connect(mongod.getUri(), {
bufferCommands: true,
maxConnecting: 50,
maxPoolSize: 50,
minPoolSize: 20,
connectTimeoutMS: 60000,
waitQueueTimeoutMS: 60000,
socketTimeoutMS: 60000,
maxIdleTimeMS: 300000,
retryWrites: true,
retryReads: true
});
await initMockData();
}
});

View File

@@ -13,34 +13,37 @@ export const root = {
};
export const initMockData = async () => {
// init root user
const rootUser = await MongoUser.create({
username: 'root',
password: '123456'
});
const initRootUser = async () => {
// init root user
const rootUser = await MongoUser.create({
username: 'root',
password: '123456'
});
const rootTeam = await MongoTeam.create({
name: 'root-default-team',
ownerId: rootUser._id
});
const rootTeam = await MongoTeam.create({
name: 'root-default-team',
ownerId: rootUser._id
});
const rootTeamMember = await MongoTeamMember.create({
teamId: rootTeam._id,
userId: rootUser._id,
name: 'root-default-team-member',
status: 'active',
role: TeamMemberRoleEnum.owner
});
const rootTeamMember = await MongoTeamMember.create({
teamId: rootTeam._id,
userId: rootUser._id,
name: 'root-default-team-member',
status: 'active',
role: TeamMemberRoleEnum.owner
});
const rootApp = await MongoApp.create({
name: 'root-default-app',
teamId: rootTeam._id,
tmbId: rootTeam._id,
type: 'advanced'
});
const rootApp = await MongoApp.create({
name: 'root-default-app',
teamId: rootTeam._id,
tmbId: rootTeam._id,
type: 'advanced'
});
root.uid = rootUser._id;
root.tmbId = rootTeamMember._id;
root.teamId = rootTeam._id;
root.appId = rootApp._id;
};
root.uid = rootUser._id;
root.tmbId = rootTeamMember._id;
root.teamId = rootTeam._id;
root.appId = rootApp._id;
await initRootUser();
};

View File

@@ -0,0 +1,55 @@
import '@/pages/api/__mocks__/base';
import { root } from '@/pages/api/__mocks__/db/init';
import { getTestRequest } from '@/test/utils';
import handler, { getLatestVersionQuery, getLatestVersionResponse } from './latest';
import { MongoAppVersion } from '@fastgpt/service/core/app/version/schema';
beforeAll(async () => {
// 创建3个测试数据其中2个是已发布的
await MongoAppVersion.create([
{
appId: root.appId,
nodes: [1],
edges: [],
chatConfig: {},
isPublish: false,
versionName: 'v1',
tmbId: root.tmbId,
time: new Date('2023-01-01')
},
{
appId: root.appId,
nodes: [2],
edges: [],
chatConfig: {},
isPublish: true,
versionName: 'v2',
tmbId: root.tmbId,
time: new Date('2023-01-02')
},
{
appId: root.appId,
nodes: [3],
edges: [],
chatConfig: {},
isPublish: false,
versionName: 'v3',
tmbId: root.tmbId,
time: new Date('2023-01-03')
}
]);
});
test('获取最新版本并检查', async () => {
const _res = (await handler(
...getTestRequest<{}, getLatestVersionQuery>({
query: {
appId: root.appId
},
user: root
})
)) as any;
const res = _res.data as getLatestVersionResponse;
expect(res.nodes[0]).toEqual(2);
});

View File

@@ -0,0 +1,37 @@
import '@/pages/api/__mocks__/base';
import { root } from '@/pages/api/__mocks__/db/init';
import { getTestRequest } from '@/test/utils';
import handler from './publish';
import { MongoAppVersion } from '@fastgpt/service/core/app/version/schema';
import { PostPublishAppProps } from '@/global/core/app/api';
import { AppTypeEnum } from '@fastgpt/global/core/app/constants';
describe('发布应用版本测试', () => {
test('发布一个未发布的版本', async () => {
const publishData: PostPublishAppProps = {
nodes: [],
edges: [],
chatConfig: {},
type: AppTypeEnum.simple,
isPublish: false,
versionName: '1'
};
await handler(
...getTestRequest<{ appId: string }, PostPublishAppProps>({
body: publishData,
query: { appId: root.appId },
user: root
})
);
// 检查数据库是否插入成功
const insertedVersion = await MongoAppVersion.countDocuments();
console.log(insertedVersion, '==-');
// expect(insertedVersion).toBeTruthy();
// expect(insertedVersion?.isPublish).toBe(false);
// expect(insertedVersion?.versionName).toBe('1');
});
});

View File

@@ -8,7 +8,6 @@ import { beforeUpdateAppFormat } from '@fastgpt/service/core/app/controller';
import { getNextTimeByCronStringAndTimezone } from '@fastgpt/global/common/string/time';
import { PostPublishAppProps } from '@/global/core/app/api';
import { WritePermissionVal } from '@fastgpt/global/support/permission/constant';
import { AppTypeEnum } from '@fastgpt/global/core/app/constants';
async function handler(req: NextApiRequest, res: NextApiResponse<any>): Promise<{}> {
const { appId } = req.query as { appId: string };