]> Untitled Git - lemmy.git/blob - api_tests/src/user.spec.ts
Add tests for avatars, banners and more
[lemmy.git] / api_tests / src / user.spec.ts
1 jest.setTimeout(120000);
2 import {
3   alpha,
4   beta,
5   registerUser,
6   searchForUser,
7   saveUserSettingsBio,
8   saveUserSettings,
9   getSite,
10 } from './shared';
11 import {
12   UserView,
13   UserSettingsForm,
14 } from 'lemmy-js-client';
15
16 let auth: string;
17 let apShortname: string;
18
19 function assertUserFederation(
20   userOne: UserView,
21   userTwo: UserView) {
22   expect(userOne.name).toBe(userTwo.name);
23   expect(userOne.preferred_username).toBe(userTwo.preferred_username);
24   expect(userOne.bio).toBe(userTwo.bio);
25   expect(userOne.actor_id).toBe(userTwo.actor_id);
26   expect(userOne.avatar).toBe(userTwo.avatar);
27   expect(userOne.banner).toBe(userTwo.banner);
28 }
29
30 test('Create user', async () => {
31   let userRes = await registerUser(alpha);
32   expect(userRes.jwt).toBeDefined();
33   auth = userRes.jwt;
34
35   let site = await getSite(alpha, auth);
36   expect(site.my_user).toBeDefined();
37   apShortname = `@${site.my_user.name}@lemmy-alpha:8541`;
38 });
39
40 test('Save user settings, check changed bio from beta', async () => {
41   let bio = 'a changed bio';
42   let userRes = await saveUserSettingsBio(alpha, auth);
43   expect(userRes.jwt).toBeDefined();
44
45   let site = await getSite(alpha, auth);
46   expect(site.my_user.bio).toBe(bio);
47   let searchAlpha = await searchForUser(alpha, site.my_user.actor_id);
48
49   // Make sure beta sees this bio is changed
50   let searchBeta = await searchForUser(beta, apShortname);
51   assertUserFederation(searchAlpha.users[0], searchBeta.users[0]);
52 });
53
54 test('Set avatar and banner, check that they are federated', async () => {
55   let avatar = 'https://image.flaticon.com/icons/png/512/35/35896.png';
56   let banner = 'https://image.flaticon.com/icons/png/512/36/35896.png';
57   let form: UserSettingsForm = {
58     show_nsfw: false,
59     theme: "",
60     default_sort_type: 0,
61     default_listing_type: 0,
62     lang: "",
63     avatar,
64     banner,
65     preferred_username: "user321",
66     show_avatars: false,
67     send_notifications_to_email: false,
68     auth,
69   }
70   let settingsRes = await saveUserSettings(alpha, form);
71
72   let searchAlpha = await searchForUser(beta, apShortname);
73   let userOnAlpha = searchAlpha.users[0];
74   let searchBeta = await searchForUser(beta, apShortname);
75   let userOnBeta = searchBeta.users[0];
76   assertUserFederation(userOnAlpha, userOnBeta);
77 });