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