feat: resolved failing testcases

This commit is contained in:
=
2024-07-30 23:19:06 +05:30
parent b5182550da
commit 7d7fcd0db6
5 changed files with 98 additions and 17 deletions
+2 -2
View File
@@ -40,8 +40,8 @@
"type:check": "tsc --noEmit", "type:check": "tsc --noEmit",
"lint:fix": "eslint --fix --ext js,ts ./src", "lint:fix": "eslint --fix --ext js,ts ./src",
"lint": "eslint 'src/**/*.ts'", "lint": "eslint 'src/**/*.ts'",
"test:e2e": "vitest run -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", "test:e2e-watch": "vitest -c vitest.e2e.config.ts --bail=<value>",
"test:e2e-coverage": "vitest run --coverage -c vitest.e2e.config.ts", "test:e2e-coverage": "vitest run --coverage -c vitest.e2e.config.ts",
"generate:component": "tsx ./scripts/create-backend-file.ts", "generate:component": "tsx ./scripts/create-backend-file.ts",
"generate:schema": "tsx ./scripts/generate-schema-types.ts", "generate:schema": "tsx ./scripts/generate-schema-types.ts",
@@ -136,7 +136,6 @@ export const fnSecretBulkUpdate = async ({
encryptedValue, encryptedValue,
userId, userId,
encryptedComment, encryptedComment,
version,
metadata, metadata,
reminderNote, reminderNote,
reminderRepeatDays reminderRepeatDays
@@ -149,7 +148,6 @@ export const fnSecretBulkUpdate = async ({
key, key,
userId, userId,
encryptedComment, encryptedComment,
version,
metadata, metadata,
reminderNote, reminderNote,
encryptedValue, encryptedValue,
@@ -370,12 +370,12 @@ export const secretV2BridgeServiceFactory = ({
if (!folder) if (!folder)
throw new BadRequestError({ throw new BadRequestError({
message: "Folder not found for the given environment slug & secret path", message: "Folder not found for the given environment slug & secret path",
name: "Create secret" name: "Delete secret"
}); });
const folderId = folder.id; const folderId = folder.id;
if (ActorType.USER !== actor && inputSecret.type === SecretType.Personal) { 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) => const deletedSecret = await secretDAL.transaction(async (tx) =>
+93 -11
View File
@@ -547,10 +547,51 @@ export const fnSecretBulkInsert = async ({
secretVersionTagDAL, secretVersionTagDAL,
tx tx
}: TFnSecretBulkInsert) => { }: TFnSecretBulkInsert) => {
const newSecrets = await secretDAL.insertMany( const sanitizedInputSecrets = inputSecrets.map(
inputSecrets.map(({ tags, references, ...el }) => ({ ...el, folderId })), ({
tx 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 newSecretGroupByBlindIndex = groupBy(newSecrets, (item) => item.secretBlindIndex as string);
const newSecretTags = inputSecrets.flatMap(({ tags: secretTags = [], secretBlindIndex }) => const newSecretTags = inputSecrets.flatMap(({ tags: secretTags = [], secretBlindIndex }) =>
secretTags.map((tag) => ({ secretTags.map((tag) => ({
@@ -559,9 +600,8 @@ export const fnSecretBulkInsert = async ({
})) }))
); );
const secretVersions = await secretVersionDAL.insertMany( const secretVersions = await secretVersionDAL.insertMany(
inputSecrets.map(({ tags, references, ...el }) => ({ sanitizedInputSecrets.map((el) => ({
...el, ...el,
folderId,
secretId: newSecretGroupByBlindIndex[el.secretBlindIndex as string][0].id secretId: newSecretGroupByBlindIndex[el.secretBlindIndex as string][0].id
})), })),
tx tx
@@ -596,13 +636,55 @@ export const fnSecretBulkUpdate = async ({
secretTagDAL, secretTagDAL,
secretVersionTagDAL secretVersionTagDAL
}: TFnSecretBulkUpdate) => { }: TFnSecretBulkUpdate) => {
const newSecrets = await secretDAL.bulkUpdate( const sanitizedInputSecrets = inputSecrets.map(
inputSecrets.map(({ filter, data: { tags, references, ...data } }) => ({ ({
filter,
data: {
skipMultilineEncoding,
type,
userId,
metadata,
algorithm,
secretKeyIV,
secretKeyTag,
secretValueIV,
keyEncoding,
secretValueTag,
secretCommentIV,
secretBlindIndex,
secretCommentTag,
secretKeyCiphertext,
secretReminderNote,
secretValueCiphertext,
secretCommentCiphertext,
secretReminderRepeatDays
}
}) => ({
filter: { ...filter, folderId }, filter: { ...filter, folderId },
data data: {
})), skipMultilineEncoding,
tx 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( const secretVersions = await secretVersionDAL.insertMany(
newSecrets.map(({ id, createdAt, updatedAt, ...el }) => ({ newSecrets.map(({ id, createdAt, updatedAt, ...el }) => ({
...el, ...el,
@@ -811,7 +893,7 @@ export const createManySecretsRawFnFactory = ({
const newSecrets = await secretDAL.transaction(async (tx) => const newSecrets = await secretDAL.transaction(async (tx) =>
fnSecretBulkInsert({ fnSecretBulkInsert({
inputSecrets: inputSecrets.map(({ secretName, ...el }) => ({ inputSecrets: inputSecrets.map(({ secretName, tags: _, ...el }) => ({
...el, ...el,
version: 0, version: 0,
secretBlindIndex: keyName2BlindIndex[secretName], secretBlindIndex: keyName2BlindIndex[secretName],
@@ -1675,6 +1675,7 @@ export const secretServiceFactory = ({
}); });
return { type: SecretProtectionType.Approval as const, approval }; return { type: SecretProtectionType.Approval as const, approval };
} }
const secrets = await createManySecret({ const secrets = await createManySecret({
projectId, projectId,
environment, environment,