From 01145bbe837c61e24f7b321babc4b99adbd9d334 Mon Sep 17 00:00:00 2001 From: Montassar Ghanmy Date: Fri, 22 Mar 2024 17:16:08 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20item=20version=20update=20?= =?UTF-8?q?related=20notification=20(#470)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * version notification * updated version notification e2e test --------- Co-authored-by: Monta --- .../src/services/documents/services/index.ts | 27 ++++++++++--------- .../backend/node/test/e2e/common/user-api.ts | 2 +- .../documents/documents-notifications.spec.ts | 4 ++- .../backend/node/test/e2e/documents/utils.ts | 3 ++- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/tdrive/backend/node/src/services/documents/services/index.ts b/tdrive/backend/node/src/services/documents/services/index.ts index 3de3c8c3..eb1a8247 100644 --- a/tdrive/backend/node/src/services/documents/services/index.ts +++ b/tdrive/backend/node/src/services/documents/services/index.ts @@ -477,8 +477,9 @@ export class DocumentsService { if (key === "access_info") { const sharedWith = content.access_info.entities.filter( info => - !item.access_info.entities.find(entity => entity.id === info.id) && - info.type === "user", + info.type === "user" && + info.id !== context.user.id && + !item.access_info.entities.find(entity => entity.id === info.id), ); item.access_info = content.access_info; @@ -791,16 +792,18 @@ export class DocumentsService { await this.repository.save(item); // Notify the user that the document versions have been updated - this.logger.info("Notifying user that the document has been updated: ", { - item, - notificationEmitter: context.user.id, - }); - gr.services.documents.engine.notifyDocumentVersionUpdated({ - context, - item, - notificationEmitter: context.user.id, - notificationReceiver: item.creator, - }); + if (context.user.id !== item.creator) { + this.logger.info("Notifying user that the document has been updated: ", { + item, + notificationEmitter: context.user.id, + }); + gr.services.documents.engine.notifyDocumentVersionUpdated({ + context, + item, + notificationEmitter: context.user.id, + notificationReceiver: item.creator, + }); + } await updateItemSize(item.parent_id, this.repository, context); diff --git a/tdrive/backend/node/test/e2e/common/user-api.ts b/tdrive/backend/node/test/e2e/common/user-api.ts index 3ef7ad78..41999500 100644 --- a/tdrive/backend/node/test/e2e/common/user-api.ts +++ b/tdrive/backend/node/test/e2e/common/user-api.ts @@ -99,7 +99,7 @@ export default class UserApi { return filesUpload.resource; } - private getJWTTokenForUser(userId: string): string { + public getJWTTokenForUser(userId: string): string { const payload = { sub: userId, role: "" diff --git a/tdrive/backend/node/test/e2e/documents/documents-notifications.spec.ts b/tdrive/backend/node/test/e2e/documents/documents-notifications.spec.ts index 14b1dd46..6470bf11 100644 --- a/tdrive/backend/node/test/e2e/documents/documents-notifications.spec.ts +++ b/tdrive/backend/node/test/e2e/documents/documents-notifications.spec.ts @@ -73,6 +73,8 @@ describe("the Drive feature", () => { it("Did notify the user after creating a new version for a file.", async () => { const item = await currentUser.createDefaultDocument(); + const oneUser = await UserApi.getInstance(platform, true, { companyRole: "admin" }); + const oneUserJWT = await platform.auth.getJWTToken({ sub: oneUser.user.id }); const fileUploadResponse = await e2e_createDocumentFile(platform); const fileUploadResult = deserialize>( ResourceUpdateResponse, @@ -81,7 +83,7 @@ describe("the Drive feature", () => { const file_metadata = { external_id: fileUploadResult.resource.id }; - await e2e_createVersion(platform, item.id, { filename: "file2", file_metadata }); + await e2e_createVersion(platform, item.id, { filename: "file2", file_metadata }, oneUserJWT); expect(notifyDocumentVersionUpdated).toHaveBeenCalled(); }); diff --git a/tdrive/backend/node/test/e2e/documents/utils.ts b/tdrive/backend/node/test/e2e/documents/utils.ts index f2c377ff..019fb95c 100644 --- a/tdrive/backend/node/test/e2e/documents/utils.ts +++ b/tdrive/backend/node/test/e2e/documents/utils.ts @@ -40,8 +40,9 @@ export const e2e_createVersion = async ( platform: TestPlatform, id: string, payload: Partial, + jwt?: string, ) => { - const token = await platform.auth.getJWTToken(); + const token = jwt ?? (await platform.auth.getJWTToken()); return await platform.app.inject({ method: "POST",