From 7d7fcd0db62d93b2dad2871add514829f0f0f0ea Mon Sep 17 00:00:00 2001 From: = Date: Wed, 24 Jul 2024 13:31:38 +0530 Subject: [PATCH] feat: resolved failing testcases --- backend/package.json | 4 +- .../secret-v2-bridge/secret-v2-bridge-fns.ts | 2 - .../secret-v2-bridge-service.ts | 4 +- backend/src/services/secret/secret-fns.ts | 104 ++++++++++++++++-- backend/src/services/secret/secret-service.ts | 1 + 5 files changed, 98 insertions(+), 17 deletions(-) diff --git a/backend/package.json b/backend/package.json index dd66d4cd6..1f24dddc1 100644 --- a/backend/package.json +++ b/backend/package.json @@ -40,8 +40,8 @@ "type:check": "tsc --noEmit", "lint:fix": "eslint --fix --ext js,ts ./src", "lint": "eslint 'src/**/*.ts'", - "test:e2e": "vitest run -c vitest.e2e.config.ts", - "test:e2e-watch": "vitest -c vitest.e2e.config.ts", + "test:e2e": "vitest run -c vitest.e2e.config.ts --bail=1", + "test:e2e-watch": "vitest -c vitest.e2e.config.ts --bail=", "test:e2e-coverage": "vitest run --coverage -c vitest.e2e.config.ts", "generate:component": "tsx ./scripts/create-backend-file.ts", "generate:schema": "tsx ./scripts/generate-schema-types.ts", diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts index cdd1c8f6f..76553902d 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts @@ -136,7 +136,6 @@ export const fnSecretBulkUpdate = async ({ encryptedValue, userId, encryptedComment, - version, metadata, reminderNote, reminderRepeatDays @@ -149,7 +148,6 @@ export const fnSecretBulkUpdate = async ({ key, userId, encryptedComment, - version, metadata, reminderNote, encryptedValue, diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts index dbf5be00a..31856c42c 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts @@ -370,12 +370,12 @@ export const secretV2BridgeServiceFactory = ({ if (!folder) throw new BadRequestError({ message: "Folder not found for the given environment slug & secret path", - name: "Create secret" + name: "Delete secret" }); const folderId = folder.id; if (ActorType.USER !== actor && inputSecret.type === SecretType.Personal) { - throw new BadRequestError({ message: "Must be user to create personal secret" }); + throw new BadRequestError({ message: "Must be user to delete personal secret" }); } const deletedSecret = await secretDAL.transaction(async (tx) => diff --git a/backend/src/services/secret/secret-fns.ts b/backend/src/services/secret/secret-fns.ts index d6a860b93..662067645 100644 --- a/backend/src/services/secret/secret-fns.ts +++ b/backend/src/services/secret/secret-fns.ts @@ -547,10 +547,51 @@ export const fnSecretBulkInsert = async ({ secretVersionTagDAL, tx }: TFnSecretBulkInsert) => { - const newSecrets = await secretDAL.insertMany( - inputSecrets.map(({ tags, references, ...el }) => ({ ...el, folderId })), - tx + const sanitizedInputSecrets = inputSecrets.map( + ({ + skipMultilineEncoding, + type, + userId, + version, + metadata, + algorithm, + secretKeyIV, + secretKeyTag, + secretValueIV, + keyEncoding, + secretValueTag, + secretCommentIV, + secretBlindIndex, + secretCommentTag, + secretKeyCiphertext, + secretReminderNote, + secretValueCiphertext, + secretCommentCiphertext, + secretReminderRepeatDays + }) => ({ + skipMultilineEncoding, + folderId, + type, + userId, + version, + metadata, + algorithm, + secretKeyIV, + secretKeyTag, + secretValueIV, + keyEncoding, + secretValueTag, + secretCommentIV, + secretBlindIndex, + secretCommentTag, + secretKeyCiphertext, + secretReminderNote, + secretValueCiphertext, + secretCommentCiphertext, + secretReminderRepeatDays + }) ); + const newSecrets = await secretDAL.insertMany(sanitizedInputSecrets, tx); const newSecretGroupByBlindIndex = groupBy(newSecrets, (item) => item.secretBlindIndex as string); const newSecretTags = inputSecrets.flatMap(({ tags: secretTags = [], secretBlindIndex }) => secretTags.map((tag) => ({ @@ -559,9 +600,8 @@ export const fnSecretBulkInsert = async ({ })) ); const secretVersions = await secretVersionDAL.insertMany( - inputSecrets.map(({ tags, references, ...el }) => ({ + sanitizedInputSecrets.map((el) => ({ ...el, - folderId, secretId: newSecretGroupByBlindIndex[el.secretBlindIndex as string][0].id })), tx @@ -596,13 +636,55 @@ export const fnSecretBulkUpdate = async ({ secretTagDAL, secretVersionTagDAL }: TFnSecretBulkUpdate) => { - const newSecrets = await secretDAL.bulkUpdate( - inputSecrets.map(({ filter, data: { tags, references, ...data } }) => ({ + const sanitizedInputSecrets = inputSecrets.map( + ({ + filter, + data: { + skipMultilineEncoding, + type, + userId, + metadata, + algorithm, + secretKeyIV, + secretKeyTag, + secretValueIV, + keyEncoding, + secretValueTag, + secretCommentIV, + secretBlindIndex, + secretCommentTag, + secretKeyCiphertext, + secretReminderNote, + secretValueCiphertext, + secretCommentCiphertext, + secretReminderRepeatDays + } + }) => ({ filter: { ...filter, folderId }, - data - })), - tx + data: { + skipMultilineEncoding, + type, + userId, + metadata, + algorithm, + secretKeyIV, + secretKeyTag, + secretValueIV, + keyEncoding, + secretValueTag, + secretCommentIV, + secretBlindIndex, + secretCommentTag, + secretKeyCiphertext, + secretReminderNote, + secretValueCiphertext, + secretCommentCiphertext, + secretReminderRepeatDays + } + }) ); + + const newSecrets = await secretDAL.bulkUpdate(sanitizedInputSecrets, tx); const secretVersions = await secretVersionDAL.insertMany( newSecrets.map(({ id, createdAt, updatedAt, ...el }) => ({ ...el, @@ -811,7 +893,7 @@ export const createManySecretsRawFnFactory = ({ const newSecrets = await secretDAL.transaction(async (tx) => fnSecretBulkInsert({ - inputSecrets: inputSecrets.map(({ secretName, ...el }) => ({ + inputSecrets: inputSecrets.map(({ secretName, tags: _, ...el }) => ({ ...el, version: 0, secretBlindIndex: keyName2BlindIndex[secretName], diff --git a/backend/src/services/secret/secret-service.ts b/backend/src/services/secret/secret-service.ts index ea29f7c8b..2ce7ed898 100644 --- a/backend/src/services/secret/secret-service.ts +++ b/backend/src/services/secret/secret-service.ts @@ -1675,6 +1675,7 @@ export const secretServiceFactory = ({ }); return { type: SecretProtectionType.Approval as const, approval }; } + const secrets = await createManySecret({ projectId, environment,