]> Untitled Git - lemmy.git/blob - api_tests/src/private_message.spec.ts
Changing unit tests to api v2.
[lemmy.git] / api_tests / src / private_message.spec.ts
1 jest.setTimeout(120000);
2 import {
3   alpha,
4   beta,
5   setupLogins,
6   followBeta,
7   createPrivateMessage,
8   editPrivateMessage,
9   listPrivateMessages,
10   deletePrivateMessage,
11   unfollowRemotes,
12   delay,
13   longDelay,
14 } from './shared';
15
16 let recipient_id: number;
17
18 beforeAll(async () => {
19   await setupLogins();
20   let follow = await followBeta(alpha);
21   await longDelay();
22   recipient_id = follow.community_view.creator.id;
23 });
24
25 afterAll(async () => {
26   await unfollowRemotes(alpha);
27 });
28
29 test('Create a private message', async () => {
30   let pmRes = await createPrivateMessage(alpha, recipient_id);
31   expect(pmRes.private_message_view.private_message.content).toBeDefined();
32   expect(pmRes.private_message_view.private_message.local).toBe(true);
33   expect(pmRes.private_message_view.creator.local).toBe(true);
34   expect(pmRes.private_message_view.recipient.local).toBe(false);
35   await delay();
36
37   let betaPms = await listPrivateMessages(beta);
38   expect(betaPms.private_messages[0].private_message.content).toBeDefined();
39   expect(betaPms.private_messages[0].private_message.local).toBe(false);
40   expect(betaPms.private_messages[0].creator.local).toBe(false);
41   expect(betaPms.private_messages[0].recipient.local).toBe(true);
42 });
43
44 test('Update a private message', async () => {
45   let updatedContent = 'A jest test federated private message edited';
46
47   let pmRes = await createPrivateMessage(alpha, recipient_id);
48   let pmUpdated = await editPrivateMessage(
49     alpha,
50     pmRes.private_message_view.private_message.id
51   );
52   expect(pmUpdated.private_message_view.private_message.content).toBe(
53     updatedContent
54   );
55   await longDelay();
56
57   let betaPms = await listPrivateMessages(beta);
58   expect(betaPms.private_messages[0].private_message.content).toBe(
59     updatedContent
60   );
61 });
62
63 test('Delete a private message', async () => {
64   let pmRes = await createPrivateMessage(alpha, recipient_id);
65   await delay();
66   let betaPms1 = await listPrivateMessages(beta);
67   let deletedPmRes = await deletePrivateMessage(
68     alpha,
69     true,
70     pmRes.private_message_view.private_message.id
71   );
72   expect(deletedPmRes.private_message_view.private_message.deleted).toBe(true);
73   await delay();
74
75   // The GetPrivateMessages filters out deleted,
76   // even though they are in the actual database.
77   // no reason to show them
78   let betaPms2 = await listPrivateMessages(beta);
79   expect(betaPms2.private_messages.length).toBe(
80     betaPms1.private_messages.length - 1
81   );
82   await delay();
83
84   // Undelete
85   let undeletedPmRes = await deletePrivateMessage(
86     alpha,
87     false,
88     pmRes.private_message_view.private_message.id
89   );
90   expect(undeletedPmRes.private_message_view.private_message.deleted).toBe(
91     false
92   );
93   await longDelay();
94
95   let betaPms3 = await listPrivateMessages(beta);
96   expect(betaPms3.private_messages.length).toBe(
97     betaPms1.private_messages.length
98   );
99 });