mirror of https://github.com/msgbyte/tailchat
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.9 KiB
TypeScript
78 lines
1.9 KiB
TypeScript
import { createTestServiceBroker } from '../../utils';
|
|
import OpenAppService from '../../../services/openapi/app.service';
|
|
import { Types } from 'mongoose';
|
|
import _ from 'lodash';
|
|
import { generateRandomStr } from '../../../lib/utils';
|
|
import type { OpenApp } from '../../../models/openapi/app';
|
|
import { nanoid } from 'nanoid';
|
|
|
|
/**
|
|
* 创建测试应用
|
|
*/
|
|
|
|
function createTestOpenApp(
|
|
userId: Types.ObjectId = new Types.ObjectId()
|
|
): Partial<OpenApp> {
|
|
return {
|
|
owner: userId,
|
|
appId: `tc_${new Types.ObjectId().toString()}`,
|
|
appSecret: nanoid(32),
|
|
appName: generateRandomStr(),
|
|
appDesc: generateRandomStr(),
|
|
appIcon: null,
|
|
};
|
|
}
|
|
|
|
describe('Test "openapi.app" service', () => {
|
|
const { broker, service, insertTestData } =
|
|
createTestServiceBroker<OpenAppService>(OpenAppService);
|
|
|
|
test('Test "openapi.app.create"', async () => {
|
|
const userId = String(new Types.ObjectId());
|
|
const name = generateRandomStr();
|
|
|
|
const res: OpenApp = await broker.call(
|
|
'openapi.app.create',
|
|
{
|
|
appName: name,
|
|
appDesc: '',
|
|
appIcon: '',
|
|
},
|
|
{
|
|
meta: {
|
|
userId,
|
|
},
|
|
}
|
|
);
|
|
|
|
try {
|
|
expect(res).toHaveProperty('owner');
|
|
expect(res.appId).toHaveLength(27);
|
|
expect(res.appSecret).toHaveLength(32);
|
|
expect(res.appName).toBe(name);
|
|
} finally {
|
|
await service.adapter.model.findByIdAndRemove(res._id);
|
|
}
|
|
});
|
|
|
|
test('Test "openapi.app.setAppOAuthInfo"', async () => {
|
|
const { _id, appId, owner } = await insertTestData(createTestOpenApp());
|
|
await broker.call(
|
|
'openapi.app.setAppOAuthInfo',
|
|
{
|
|
appId,
|
|
fieldName: 'redirectUrls',
|
|
fieldValue: ['http://example.com'],
|
|
},
|
|
{
|
|
meta: {
|
|
userId: String(owner),
|
|
},
|
|
}
|
|
);
|
|
|
|
const openapp = await service.adapter.findById(_id);
|
|
expect(openapp.oauth.redirectUrls).toEqual(['http://example.com']);
|
|
});
|
|
});
|