From d62e9a475f45b0939460a6f05aa1523f5842cfc8 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Fri, 15 Sep 2023 12:10:59 +0200 Subject: [PATCH] Validate objects --- .../tests/bbReferenceProcessor.spec.ts | 57 +++++++++++++++---- 1 file changed, 46 insertions(+), 11 deletions(-) diff --git a/packages/server/src/utilities/rowProcessor/tests/bbReferenceProcessor.spec.ts b/packages/server/src/utilities/rowProcessor/tests/bbReferenceProcessor.spec.ts index 7e4312b398..efc9805ef3 100644 --- a/packages/server/src/utilities/rowProcessor/tests/bbReferenceProcessor.spec.ts +++ b/packages/server/src/utilities/rowProcessor/tests/bbReferenceProcessor.spec.ts @@ -28,24 +28,24 @@ describe("bbReferenceProcessor", () => { describe("processInputBBReferences", () => { describe("subtype user", () => { it("validate valid string id", async () => { - const input = generator.guid() + const userId = generator.guid() const userFromCache = structures.users.user() mockedCacheGetUser.mockResolvedValueOnce(userFromCache) - const result = await processInputBBReferences(input, FieldSubtype.USER) + const result = await processInputBBReferences(userId, FieldSubtype.USER) - expect(result).toEqual(input) + expect(result).toEqual(userId) expect(mockedCacheGetUser).toBeCalledTimes(1) - expect(mockedCacheGetUser).toBeCalledWith(input) + expect(mockedCacheGetUser).toBeCalledWith(userId) }) it("throws an error given an invalid id", async () => { - const input = generator.guid() + const userId = generator.guid() await expect( - processInputBBReferences(input, FieldSubtype.USER) - ).rejects.toThrowError(new InvalidBBRefError(input, FieldSubtype.USER)) + processInputBBReferences(userId, FieldSubtype.USER) + ).rejects.toThrowError(new InvalidBBRefError(userId, FieldSubtype.USER)) }) it("validates valid user ids as csv", async () => { @@ -57,8 +57,11 @@ describe("bbReferenceProcessor", () => { userIds.push(userId) } - const input = userIds.join(" , ") - const result = await processInputBBReferences(input, FieldSubtype.USER) + const userIdCsv = userIds.join(" , ") + const result = await processInputBBReferences( + userIdCsv, + FieldSubtype.USER + ) expect(result).toEqual(userIds.join(",")) expect(mockedCacheGetUser).toBeCalledTimes(5) @@ -78,14 +81,46 @@ describe("bbReferenceProcessor", () => { structures.users.user({ _id: userId2 }) ) - const input = [userId1, userId2, userId3].join(" , ") + const userIdCsv = [userId1, userId2, userId3].join(" , ") await expect( - processInputBBReferences(input, FieldSubtype.USER) + processInputBBReferences(userIdCsv, FieldSubtype.USER) ).rejects.toThrowError( new InvalidBBRefError(userId3, FieldSubtype.USER) ) }) + + it("validate valid user object", async () => { + const userId = generator.guid() + + const userFromCache = structures.users.user() + mockedCacheGetUser.mockResolvedValueOnce(userFromCache) + + const result = await processInputBBReferences( + { _id: userId }, + FieldSubtype.USER + ) + + expect(result).toEqual(userId) + expect(mockedCacheGetUser).toBeCalledTimes(1) + expect(mockedCacheGetUser).toBeCalledWith(userId) + }) + + it("validate valid user object array", async () => { + const users = Array.from({ length: 3 }, () => ({ + _id: generator.guid(), + })) + + mockedCacheGetUser.mockResolvedValue(structures.users.user()) + + const result = await processInputBBReferences(users, FieldSubtype.USER) + + expect(result).toEqual(users.map(x => x._id).join(",")) + expect(mockedCacheGetUser).toBeCalledTimes(3) + for (const user of users) { + expect(mockedCacheGetUser).toBeCalledWith(user._id) + } + }) }) }) })