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