]> Untitled Git - lemmy.git/blob - api_tests/src/user.spec.ts
Adding diesel enums for SortType and ListingType (#2808)
[lemmy.git] / api_tests / src / user.spec.ts
1 jest.setTimeout(120000);
2 import { PersonView } from "lemmy-js-client";
3
4 import {
5   alpha,
6   beta,
7   registerUser,
8   resolvePerson,
9   getSite,
10   createPost,
11   resolveCommunity,
12   createComment,
13   resolveBetaCommunity,
14   deleteUser,
15   resolvePost,
16   API,
17   resolveComment,
18   saveUserSettingsFederated,
19   setupLogins,
20 } from "./shared";
21
22 beforeAll(async () => {
23   await setupLogins();
24 });
25
26 let apShortname: string;
27
28 function assertUserFederation(userOne?: PersonView, userTwo?: PersonView) {
29   expect(userOne?.person.name).toBe(userTwo?.person.name);
30   expect(userOne?.person.display_name).toBe(userTwo?.person.display_name);
31   expect(userOne?.person.bio).toBe(userTwo?.person.bio);
32   expect(userOne?.person.actor_id).toBe(userTwo?.person.actor_id);
33   expect(userOne?.person.avatar).toBe(userTwo?.person.avatar);
34   expect(userOne?.person.banner).toBe(userTwo?.person.banner);
35   expect(userOne?.person.published).toBe(userTwo?.person.published);
36 }
37
38 test("Create user", async () => {
39   let userRes = await registerUser(alpha);
40   expect(userRes.jwt).toBeDefined();
41   alpha.auth = userRes.jwt ?? "";
42
43   let site = await getSite(alpha);
44   expect(site.my_user).toBeDefined();
45   if (!site.my_user) {
46     throw "Missing site user";
47   }
48   apShortname = `@${site.my_user.local_user_view.person.name}@lemmy-alpha:8541`;
49 });
50
51 test("Set some user settings, check that they are federated", async () => {
52   await saveUserSettingsFederated(alpha);
53   let alphaPerson = (await resolvePerson(alpha, apShortname)).person;
54   let betaPerson = (await resolvePerson(beta, apShortname)).person;
55   assertUserFederation(alphaPerson, betaPerson);
56 });
57
58 test("Delete user", async () => {
59   let userRes = await registerUser(alpha);
60   expect(userRes.jwt).toBeDefined();
61   let user: API = {
62     client: alpha.client,
63     auth: userRes.jwt ?? "",
64   };
65
66   // make a local post and comment
67   let alphaCommunity = (await resolveCommunity(user, "!main@lemmy-alpha:8541"))
68     .community;
69   if (!alphaCommunity) {
70     throw "Missing alpha community";
71   }
72   let localPost = (await createPost(user, alphaCommunity.community.id))
73     .post_view.post;
74   expect(localPost).toBeDefined();
75   let localComment = (await createComment(user, localPost.id)).comment_view
76     .comment;
77   expect(localComment).toBeDefined();
78
79   // make a remote post and comment
80   let betaCommunity = (await resolveBetaCommunity(user)).community;
81   if (!betaCommunity) {
82     throw "Missing beta community";
83   }
84   let remotePost = (await createPost(user, betaCommunity.community.id))
85     .post_view.post;
86   expect(remotePost).toBeDefined();
87   let remoteComment = (await createComment(user, remotePost.id)).comment_view
88     .comment;
89   expect(remoteComment).toBeDefined();
90
91   await deleteUser(user);
92
93   expect((await resolvePost(alpha, localPost)).post).toBeUndefined();
94   expect((await resolveComment(alpha, localComment)).comment).toBeUndefined();
95   expect((await resolvePost(alpha, remotePost)).post).toBeUndefined();
96   expect((await resolveComment(alpha, remoteComment)).comment).toBeUndefined();
97 });