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.
178 lines
3.9 KiB
TypeScript
178 lines
3.9 KiB
TypeScript
import { createTestServiceBroker } from '../../utils';
|
|
import UserDMListService from '../../../services/core/user/dmlist.service';
|
|
import { Types } from 'mongoose';
|
|
import type { UserDMList } from '../../../models/user/dmList';
|
|
|
|
describe('Test "dmlist" service', () => {
|
|
const { broker, service, insertTestData } =
|
|
createTestServiceBroker<UserDMListService>(UserDMListService);
|
|
|
|
describe('Test "user.dmlist.addConverse"', () => {
|
|
test('addConverse should be ok', async () => {
|
|
const userId = String(new Types.ObjectId());
|
|
const converseId = String(new Types.ObjectId());
|
|
|
|
await broker.call(
|
|
'user.dmlist.addConverse',
|
|
{
|
|
converseId,
|
|
},
|
|
{
|
|
meta: {
|
|
userId,
|
|
},
|
|
}
|
|
);
|
|
|
|
try {
|
|
const res = await service.adapter.model.findOne({
|
|
userId,
|
|
});
|
|
|
|
expect(res.converseIds.map((r) => String(r))).toEqual([converseId]); // 应该被成功插入
|
|
} finally {
|
|
await service.adapter.model.deleteOne({
|
|
userId,
|
|
});
|
|
}
|
|
});
|
|
|
|
test('addConverse should not be repeat', async () => {
|
|
const userId = String(new Types.ObjectId());
|
|
const converseId = String(new Types.ObjectId());
|
|
|
|
await broker.call(
|
|
'user.dmlist.addConverse',
|
|
{
|
|
converseId,
|
|
},
|
|
{
|
|
meta: {
|
|
userId,
|
|
},
|
|
}
|
|
);
|
|
|
|
await broker.call(
|
|
'user.dmlist.addConverse',
|
|
{
|
|
converseId,
|
|
},
|
|
{
|
|
meta: {
|
|
userId,
|
|
},
|
|
}
|
|
);
|
|
|
|
try {
|
|
const res = await service.adapter.model.findOne({
|
|
userId,
|
|
});
|
|
|
|
expect(res.converseIds.map((r) => String(r))).toEqual([converseId]); // 应该被成功插入
|
|
} finally {
|
|
await service.adapter.model.deleteOne({
|
|
userId,
|
|
});
|
|
}
|
|
});
|
|
|
|
test('addConverse can be add more', async () => {
|
|
const userId = String(new Types.ObjectId());
|
|
const converseId = String(new Types.ObjectId());
|
|
const converseId2 = String(new Types.ObjectId());
|
|
|
|
await broker.call(
|
|
'user.dmlist.addConverse',
|
|
{
|
|
converseId,
|
|
},
|
|
{
|
|
meta: {
|
|
userId,
|
|
},
|
|
}
|
|
);
|
|
|
|
await broker.call(
|
|
'user.dmlist.addConverse',
|
|
{
|
|
converseId: converseId2,
|
|
},
|
|
{
|
|
meta: {
|
|
userId,
|
|
},
|
|
}
|
|
);
|
|
|
|
try {
|
|
const res = await service.adapter.model.findOne({
|
|
userId,
|
|
});
|
|
|
|
expect(res.converseIds.map((r) => String(r))).toEqual([
|
|
converseId,
|
|
converseId2,
|
|
]);
|
|
} finally {
|
|
await service.adapter.model.deleteOne({
|
|
userId,
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
test('Test "user.dmlist.removeConverse"', async () => {
|
|
const userId = String(new Types.ObjectId());
|
|
const converseId = new Types.ObjectId();
|
|
|
|
await insertTestData({
|
|
userId,
|
|
converseIds: [converseId],
|
|
});
|
|
|
|
expect(
|
|
(await service.adapter.model.findOne({ userId })).converseIds.length
|
|
).toBe(1);
|
|
|
|
await broker.call(
|
|
'user.dmlist.removeConverse',
|
|
{
|
|
converseId: String(converseId),
|
|
},
|
|
{
|
|
meta: {
|
|
userId,
|
|
},
|
|
}
|
|
);
|
|
|
|
expect(
|
|
(await service.adapter.model.findOne({ userId })).converseIds.length
|
|
).toBe(0);
|
|
});
|
|
|
|
test('Test "user.dmlist.getAllConverse"', async () => {
|
|
const userId = String(new Types.ObjectId());
|
|
|
|
const testData = await insertTestData({
|
|
userId,
|
|
converseIds: [new Types.ObjectId()],
|
|
});
|
|
|
|
const converseIds: UserDMList = await broker.call(
|
|
'user.dmlist.getAllConverse',
|
|
{},
|
|
{
|
|
meta: {
|
|
userId,
|
|
},
|
|
}
|
|
);
|
|
|
|
expect(converseIds).toEqual([...testData.converseIds]);
|
|
});
|
|
});
|