]> Untitled Git - lemmy.git/blobdiff - api_tests/src/user.spec.ts
Adding diesel enums for SortType and ListingType (#2808)
[lemmy.git] / api_tests / src / user.spec.ts
index 8a0c2a28173521b2b9dd228fc250ea2c1b485321..b2083c66c20e0a86386b7c968b6e9037fef8b199 100644 (file)
@@ -1,35 +1,97 @@
 jest.setTimeout(120000);
+import { PersonView } from "lemmy-js-client";
+
 import {
   alpha,
   beta,
   registerUser,
-  searchForUser,
-  saveUserSettingsBio,
+  resolvePerson,
   getSite,
-} from './shared';
+  createPost,
+  resolveCommunity,
+  createComment,
+  resolveBetaCommunity,
+  deleteUser,
+  resolvePost,
+  API,
+  resolveComment,
+  saveUserSettingsFederated,
+  setupLogins,
+} from "./shared";
+
+beforeAll(async () => {
+  await setupLogins();
+});
 
-let auth: string;
 let apShortname: string;
 
-test('Create user', async () => {
+function assertUserFederation(userOne?: PersonView, userTwo?: PersonView) {
+  expect(userOne?.person.name).toBe(userTwo?.person.name);
+  expect(userOne?.person.display_name).toBe(userTwo?.person.display_name);
+  expect(userOne?.person.bio).toBe(userTwo?.person.bio);
+  expect(userOne?.person.actor_id).toBe(userTwo?.person.actor_id);
+  expect(userOne?.person.avatar).toBe(userTwo?.person.avatar);
+  expect(userOne?.person.banner).toBe(userTwo?.person.banner);
+  expect(userOne?.person.published).toBe(userTwo?.person.published);
+}
+
+test("Create user", async () => {
   let userRes = await registerUser(alpha);
   expect(userRes.jwt).toBeDefined();
-  auth = userRes.jwt;
+  alpha.auth = userRes.jwt ?? "";
 
-  let site = await getSite(alpha, auth);
+  let site = await getSite(alpha);
   expect(site.my_user).toBeDefined();
-  apShortname = `@${site.my_user.name}@lemmy-alpha:8541`;
+  if (!site.my_user) {
+    throw "Missing site user";
+  }
+  apShortname = `@${site.my_user.local_user_view.person.name}@lemmy-alpha:8541`;
 });
 
-test('Save user settings, check changed bio from beta', async () => {
-  let bio = 'a changed bio';
-  let userRes = await saveUserSettingsBio(alpha, auth);
+test("Set some user settings, check that they are federated", async () => {
+  await saveUserSettingsFederated(alpha);
+  let alphaPerson = (await resolvePerson(alpha, apShortname)).person;
+  let betaPerson = (await resolvePerson(beta, apShortname)).person;
+  assertUserFederation(alphaPerson, betaPerson);
+});
+
+test("Delete user", async () => {
+  let userRes = await registerUser(alpha);
   expect(userRes.jwt).toBeDefined();
+  let user: API = {
+    client: alpha.client,
+    auth: userRes.jwt ?? "",
+  };
+
+  // make a local post and comment
+  let alphaCommunity = (await resolveCommunity(user, "!main@lemmy-alpha:8541"))
+    .community;
+  if (!alphaCommunity) {
+    throw "Missing alpha community";
+  }
+  let localPost = (await createPost(user, alphaCommunity.community.id))
+    .post_view.post;
+  expect(localPost).toBeDefined();
+  let localComment = (await createComment(user, localPost.id)).comment_view
+    .comment;
+  expect(localComment).toBeDefined();
+
+  // make a remote post and comment
+  let betaCommunity = (await resolveBetaCommunity(user)).community;
+  if (!betaCommunity) {
+    throw "Missing beta community";
+  }
+  let remotePost = (await createPost(user, betaCommunity.community.id))
+    .post_view.post;
+  expect(remotePost).toBeDefined();
+  let remoteComment = (await createComment(user, remotePost.id)).comment_view
+    .comment;
+  expect(remoteComment).toBeDefined();
 
-  let site = await getSite(alpha, auth);
-  expect(site.my_user.bio).toBe(bio);
+  await deleteUser(user);
 
-  // Make sure beta sees this bio is changed
-  let search = await searchForUser(beta, apShortname);
-  expect(search.users[0].bio).toBe(bio);
+  expect((await resolvePost(alpha, localPost)).post).toBeUndefined();
+  expect((await resolveComment(alpha, localComment)).comment).toBeUndefined();
+  expect((await resolvePost(alpha, remotePost)).post).toBeUndefined();
+  expect((await resolveComment(alpha, remoteComment)).comment).toBeUndefined();
 });