advancements in tests
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
import { AttrsWithEnvelope, User } from "../../../interfaces/mail/attrs.interface";
|
||||
import { RoomType } from "../../../mails/saveMessage";
|
||||
import { generateUsers } from "../test-attrsUtils";
|
||||
import { getMembers } from "../../../mails/utils/envelopeUtils";
|
||||
import { hasSameElements } from "../../../utils/array";
|
||||
import { generateUsers, UserTest } from "../test-attrsUtils";
|
||||
|
||||
interface Room {
|
||||
room_id: number;
|
||||
@@ -9,6 +12,7 @@ interface Room {
|
||||
room_type: RoomType;
|
||||
notSeen: number;
|
||||
lastUpdate: string;
|
||||
members?: UserTest[];
|
||||
is_thread?: boolean;
|
||||
parent_id?: number;
|
||||
root_id?: number;
|
||||
@@ -17,13 +21,15 @@ interface Room {
|
||||
export default class saveMessageDatabase {
|
||||
rooms: Room[];
|
||||
roomId: number;
|
||||
messages: { room_id: number; message_id: number }[];
|
||||
users: any[];
|
||||
messages: {attrs: AttrsWithEnvelope, message_id: number}[];
|
||||
room_message: {room_id: number, message_id: number}[];
|
||||
users: UserTest[];
|
||||
|
||||
constructor(_users) {
|
||||
this.rooms = [];
|
||||
this.messages = [];
|
||||
this.users = generateUsers(5);
|
||||
this.room_message = [];
|
||||
this.users = generateUsers(5); // todo
|
||||
this.roomId = 0;
|
||||
}
|
||||
|
||||
@@ -37,7 +43,16 @@ export default class saveMessageDatabase {
|
||||
return this.rooms.find((room) => room.room_id === roomId);
|
||||
}
|
||||
|
||||
createRoom(roomName: string | null | undefined, ownerId: number, messageId: number, roomType: RoomType) {
|
||||
_findUserByMailbox(mailbox: string): UserTest {
|
||||
return this.users.find((user) => user.user.mailbox === mailbox);
|
||||
}
|
||||
|
||||
createRoom = (
|
||||
roomName: string | null | undefined,
|
||||
ownerId: number,
|
||||
messageId: number,
|
||||
roomType: RoomType,
|
||||
): Promise<number> => {
|
||||
this.rooms.push({
|
||||
room_id: this.roomId,
|
||||
room_name: roomName,
|
||||
@@ -48,10 +63,12 @@ export default class saveMessageDatabase {
|
||||
lastUpdate: "0",
|
||||
});
|
||||
this.roomId++;
|
||||
}
|
||||
return Promise.resolve(this.roomId - 1);
|
||||
};
|
||||
|
||||
registerMessageInRoom = (messageId: number, roomId: number, idate: string | undefined | null) => {
|
||||
this.messages.push({ message_id: messageId, room_id: roomId });
|
||||
registerMessageInRoom = (messageId: number, roomId: number, idate: string | undefined | null): Promise<void> => {
|
||||
this.room_message.push({ message_id: messageId, room_id: roomId });
|
||||
return Promise.resolve();
|
||||
};
|
||||
|
||||
isRoomGroup(roomId: number): Promise<boolean> {
|
||||
@@ -71,8 +88,16 @@ export default class saveMessageDatabase {
|
||||
});
|
||||
};
|
||||
|
||||
hasSameMembersAsParent() {
|
||||
// test_todo
|
||||
hasSameMembersAsParent(messageId: number, messageID: string): Promise<boolean> {
|
||||
const msg1 = this.messages.find((message) => message.attrs.envelope.messageId === messageID );
|
||||
const msg2 = this.messages.find((message) => message.message_id === messageId );
|
||||
const members1 = getMembers(msg1.attrs.envelope);
|
||||
const members2 = getMembers(msg2.attrs.envelope);
|
||||
let ids1 = [];
|
||||
let ids2 = [];
|
||||
members1.forEach((member) => ids1.push(this._findUserByMailbox(member.mailbox).id));
|
||||
members2.forEach((member) => ids2.push(this._findUserByMailbox(member.mailbox).id));
|
||||
return Promise.resolve(hasSameElements(ids1, ids2));
|
||||
}
|
||||
|
||||
registerThread = async (roomId: number, parentId: number, rootId: number) => {
|
||||
@@ -81,12 +106,15 @@ export default class saveMessageDatabase {
|
||||
room.room_id = rootId;
|
||||
};
|
||||
|
||||
registerMember() {
|
||||
// test_todo
|
||||
registerMember(roomId: number, memberId: number): Promise<any> {
|
||||
const room = this._findRoomById(roomId);
|
||||
room.members.push(this.users.find((user) => user.id === memberId));
|
||||
return Promise.resolve(true);
|
||||
}
|
||||
|
||||
getAllMembers() {
|
||||
getAllMembers(messageId: number): Promise<any> {
|
||||
// test_todo
|
||||
return Promise.resolve(true);
|
||||
}
|
||||
|
||||
getThreadInfo = (messageID: string): Promise<{ room_id: number; root_id: number }[]> => {
|
||||
@@ -96,10 +124,11 @@ export default class saveMessageDatabase {
|
||||
});
|
||||
};
|
||||
|
||||
incrementNotSeenRoom = (roomId: number) => {
|
||||
incrementNotSeenRoom = (roomId: number): Promise<void> => {
|
||||
const room = this._findRoomById(roomId);
|
||||
room.notSeen++;
|
||||
}
|
||||
return Promise.resolve();
|
||||
};
|
||||
|
||||
findRoomByOwner = (ownerId: number): Promise<{ room_id: number }[]> => {
|
||||
return new Promise((resolve, reject) => {
|
||||
|
||||
Reference in New Issue
Block a user