Quellcode durchsuchen

Test that activity is not generated if it is the first update by the creator

arvid-e vor 3 Wochen
Ursprung
Commit
6eb394d119
1 geänderte Dateien mit 51 neuen und 0 gelöschten Zeilen
  1. 51 0
      apps/app/src/server/service/activity/update-activity.spec.ts

+ 51 - 0
apps/app/src/server/service/activity/update-activity.spec.ts

@@ -9,6 +9,8 @@ import { shouldGenerateUpdate } from './update-activity-logic';
 
 
 describe('shouldGenerateUpdate()', () => {
 describe('shouldGenerateUpdate()', () => {
   let mongoServer: MongoMemoryServer;
   let mongoServer: MongoMemoryServer;
+  const ONE_HOUR = 60 * 60 * 1000;
+  const date = new Date();
 
 
   beforeAll(async () => {
   beforeAll(async () => {
     mongoServer = await MongoMemoryServer.create();
     mongoServer = await MongoMemoryServer.create();
@@ -57,4 +59,53 @@ describe('shouldGenerateUpdate()', () => {
 
 
     expect(result).toBe(true);
     expect(result).toBe(true);
   });
   });
+
+  it('should not generate update activity if it is the first update activity by the creator', async () => {
+    const currentUserId = new mongoose.Types.ObjectId().toString();
+    const targetPageId = new mongoose.Types.ObjectId().toString();
+    const currentActivityId = new mongoose.Types.ObjectId().toString();
+    const olderActivityId = new mongoose.Types.ObjectId().toString();
+
+    await Activity.insertMany([
+      {
+        user: currentUserId,
+        action: SupportedAction.ACTION_PAGE_CREATE,
+        createdAt: new Date(date.getTime() - ONE_HOUR),
+        target: targetPageId,
+        _id: olderActivityId,
+      },
+      {
+        user: currentUserId,
+        action: SupportedAction.ACTION_PAGE_UPDATE,
+        createdAt: new Date(),
+        target: targetPageId,
+        _id: currentActivityId,
+      },
+    ]);
+
+    await Revision.insertMany([
+      {
+        _id: new mongoose.Types.ObjectId(),
+        pageId: targetPageId,
+        body: 'Old content',
+        format: 'markdown',
+        author: currentUserId,
+      },
+      {
+        _id: new mongoose.Types.ObjectId(),
+        pageId: targetPageId,
+        body: 'Newer content',
+        format: 'markdown',
+        author: currentUserId,
+      },
+    ]);
+
+    const result = await shouldGenerateUpdate({
+      targetPageId,
+      currentUserId,
+      currentActivityId,
+    });
+
+    expect(result).toBe(false);
+  });
 });
 });