]> Untitled Git - lemmy.git/blob - api_tests/src/private_message.spec.ts
3ae7148805dded81c6d50a58df7bfbd1de692e89
[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   updatePrivateMessage,
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.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.message.content).toBeDefined();
32   expect(pmRes.message.local).toBe(true);
33   expect(pmRes.message.creator_local).toBe(true);
34   expect(pmRes.message.recipient_local).toBe(false);
35   await delay();
36
37   let betaPms = await listPrivateMessages(beta);
38   expect(betaPms.messages[0].content).toBeDefined();
39   expect(betaPms.messages[0].local).toBe(false);
40   expect(betaPms.messages[0].creator_local).toBe(false);
41   expect(betaPms.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 updatePrivateMessage(alpha, pmRes.message.id);
49   expect(pmUpdated.message.content).toBe(updatedContent);
50   await longDelay();
51
52   let betaPms = await listPrivateMessages(beta);
53   expect(betaPms.messages[0].content).toBe(updatedContent);
54 });
55
56 test('Delete a private message', async () => {
57   let pmRes = await createPrivateMessage(alpha, recipient_id);
58   await delay();
59   let betaPms1 = await listPrivateMessages(beta);
60   let deletedPmRes = await deletePrivateMessage(alpha, true, pmRes.message.id);
61   expect(deletedPmRes.message.deleted).toBe(true);
62   await delay();
63
64   // The GetPrivateMessages filters out deleted,
65   // even though they are in the actual database.
66   // no reason to show them
67   let betaPms2 = await listPrivateMessages(beta);
68   expect(betaPms2.messages.length).toBe(betaPms1.messages.length - 1);
69   await delay();
70
71   // Undelete
72   let undeletedPmRes = await deletePrivateMessage(
73     alpha,
74     false,
75     pmRes.message.id
76   );
77   expect(undeletedPmRes.message.deleted).toBe(false);
78   await longDelay();
79
80   let betaPms3 = await listPrivateMessages(beta);
81   expect(betaPms3.messages.length).toBe(betaPms1.messages.length);
82 });