diff --git a/back/test/mail/saveMessage-test.ts b/back/test/mail/saveMessage-test.ts index b2e5c5c..88328e5 100644 --- a/back/test/mail/saveMessage-test.ts +++ b/back/test/mail/saveMessage-test.ts @@ -54,6 +54,7 @@ import { incrementNotSeenRoom, } from "../../db/saveMessage-db"; import { AttrsWithEnvelope } from "../../interfaces/mail/attrs.interface"; +import { AttrsWithEnvelopeTest, createReplyWithSameMembers } from "../test-utils/test-messageUtils"; // todo esbuild // new message from us // to multiple people -> room @@ -88,10 +89,9 @@ beforeAll(async () => { mocked(incrementNotSeenRoom).mockImplementation(db.incrementNotSeenRoom); }); -let msgFromUs_1: { attrs: AttrsWithEnvelope; message_id: number }; -let replyTo1_2: { attrs: AttrsWithEnvelope; message_id: number }; - -let replyTo2_3: { attrs: AttrsWithEnvelope; message_id: number }; +let msgFromUs_1: AttrsWithEnvelopeTest; +let replyTo1_2: AttrsWithEnvelopeTest; +let replyTo2_3: AttrsWithEnvelopeTest; beforeEach(async () => { msgFromUs_1 = { @@ -221,13 +221,8 @@ describe("saveMessage", () => { await register.save(); register = new registerMessageInApp(replyTo1_2.message_id, replyTo1_2.attrs, boxId); await register.save(); - // set same members to not create a new thread - let newReplyInThread = JSON.parse(JSON.stringify(replyTo1_2)); - newReplyInThread.attrs.envelope.inReplyTo = replyTo1_2.attrs.envelope.messageId; - newReplyInThread.message_id = randomInt(5); - newReplyInThread.attrs.envelope.messageId = newReplyInThread.message_id.toString(); - db.messages.push(newReplyInThread); + let newReplyInThread = createReplyWithSameMembers(replyTo1_2, db); register = new registerMessageInApp(newReplyInThread.message_id, newReplyInThread.attrs, boxId); await register.save(); @@ -270,13 +265,7 @@ describe("saveMessage", () => { register = new registerMessageInApp(replyTo1_2.message_id, replyTo1_2.attrs, boxId); await register.save(); - // set same members to not create a new thread - let newReplyInThread = JSON.parse(JSON.stringify(replyTo1_2)); - newReplyInThread.attrs.envelope.inReplyTo = replyTo1_2.attrs.envelope.messageId; - newReplyInThread.message_id = randomInt(5); - newReplyInThread.attrs.envelope.messageId = newReplyInThread.message_id.toString(); - db.messages.push(newReplyInThread); - + let newReplyInThread = createReplyWithSameMembers(replyTo1_2, db); register = new registerMessageInApp(newReplyInThread.message_id, newReplyInThread.attrs, boxId); await register.save(); diff --git a/back/test/test-utils/test-messageUtils.ts b/back/test/test-utils/test-messageUtils.ts new file mode 100644 index 0000000..32ca3d6 --- /dev/null +++ b/back/test/test-utils/test-messageUtils.ts @@ -0,0 +1,17 @@ +import { randomInt } from "crypto"; +import { AttrsWithEnvelope } from "../../interfaces/mail/attrs.interface"; +import saveMessageDatabase from "./db/test-saveMessage"; + +export interface AttrsWithEnvelopeTest { + attrs: AttrsWithEnvelope; + message_id: number; +} + +export function createReplyWithSameMembers(origin: AttrsWithEnvelopeTest, db?: saveMessageDatabase): AttrsWithEnvelopeTest { + const reply = JSON.parse(JSON.stringify(origin)); + reply.attrs.envelope.inReplyTo = origin.attrs.envelope.messageId; + reply.message_id = randomInt(5); + reply.attrs.envelope.messageId = reply.message_id.toString(); + db.messages.push(reply); + return reply; +} \ No newline at end of file