]> Untitled Git - lemmy.git/blob - api_tests/src/user.spec.ts
Changing unit tests to api v2.
[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   UserViewSafe,
13   SaveUserSettings,
14   SortType,
15   ListingType,
16 } from 'lemmy-js-client';
17
18 let auth: string;
19 let apShortname: string;
20
21 function assertUserFederation(userOne: UserViewSafe, userTwo: UserViewSafe) {
22   expect(userOne.user.name).toBe(userTwo.user.name);
23   expect(userOne.user.preferred_username).toBe(userTwo.user.preferred_username);
24   expect(userOne.user.bio).toBe(userTwo.user.bio);
25   expect(userOne.user.actor_id).toBe(userTwo.user.actor_id);
26   expect(userOne.user.avatar).toBe(userTwo.user.avatar);
27   expect(userOne.user.banner).toBe(userTwo.user.banner);
28   expect(userOne.user.published).toBe(userTwo.user.published);
29 }
30
31 test('Create user', async () => {
32   let userRes = await registerUser(alpha);
33   expect(userRes.jwt).toBeDefined();
34   auth = userRes.jwt;
35
36   let site = await getSite(alpha, auth);
37   expect(site.my_user).toBeDefined();
38   apShortname = `@${site.my_user.name}@lemmy-alpha:8541`;
39 });
40
41 test('Save user settings, check changed bio from beta', async () => {
42   let bio = 'a changed bio';
43   let userRes = await saveUserSettingsBio(alpha, auth);
44   expect(userRes.jwt).toBeDefined();
45
46   let site = await getSite(alpha, auth);
47   expect(site.my_user.bio).toBe(bio);
48   let searchAlpha = await searchForUser(alpha, site.my_user.actor_id);
49
50   // Make sure beta sees this bio is changed
51   let searchBeta = await searchForUser(beta, apShortname);
52   assertUserFederation(searchAlpha.users[0], searchBeta.users[0]);
53 });
54
55 test('Set avatar and banner, check that they are federated', async () => {
56   let avatar = 'https://image.flaticon.com/icons/png/512/35/35896.png';
57   let banner = 'https://image.flaticon.com/icons/png/512/36/35896.png';
58   let form: SaveUserSettings = {
59     show_nsfw: false,
60     theme: '',
61     default_sort_type: SortType.Hot,
62     default_listing_type: ListingType.All,
63     lang: '',
64     avatar,
65     banner,
66     preferred_username: 'user321',
67     show_avatars: false,
68     send_notifications_to_email: false,
69     auth,
70   };
71   let _settingsRes = await saveUserSettings(alpha, form);
72
73   let searchAlpha = await searchForUser(beta, apShortname);
74   let userOnAlpha = searchAlpha.users[0];
75   let searchBeta = await searchForUser(beta, apShortname);
76   let userOnBeta = searchBeta.users[0];
77   assertUserFederation(userOnAlpha, userOnBeta);
78 });