From 3db6d49e869f3dc8e6f03670f7a0cc7f461ad71d Mon Sep 17 00:00:00 2001 From: Thomas Mol Date: Wed, 6 Aug 2025 16:27:43 +0200 Subject: [PATCH] Fix for Invalid URL Error when creating new user (#13689) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #13676 --------- Co-authored-by: Félix Malfait Co-authored-by: Félix Malfait --- .../user-workspace.service.spec.ts | 31 +++++++++++++++++++ .../user-workspace/user-workspace.service.ts | 2 +- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.spec.ts b/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.spec.ts index 686a81a69f..13813131d7 100644 --- a/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.spec.ts +++ b/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.spec.ts @@ -279,6 +279,37 @@ describe('UserWorkspaceService', () => { pictureUrl: undefined, }); + expect(userWorkspaceRepository.save).toHaveBeenCalledWith(userWorkspace); + expect(result).toEqual(userWorkspace); + }); + + it("should create a user workspace without a default avatar url if it's a new user with an empty picture url", async () => { + const userId = 'user-id'; + const workspaceId = 'workspace-id'; + const userWorkspace = { userId, workspaceId } as UserWorkspace; + + jest + .spyOn(userWorkspaceRepository, 'create') + .mockReturnValue(userWorkspace); + jest + .spyOn(userWorkspaceRepository, 'save') + .mockResolvedValue(userWorkspace); + + const uploadImageFromUrlSpy = jest + .spyOn(fileUploadService, 'uploadImageFromUrl') + .mockResolvedValue({ + files: [{ path: 'path/to/file', token: 'token' }], + } as SignedFilesResult); + + const result = await service.create({ + userId, + workspaceId, + isExistingUser: false, + pictureUrl: '', + }); + + expect(uploadImageFromUrlSpy).not.toHaveBeenCalled(); + expect(userWorkspaceRepository.create).toHaveBeenCalledWith({ userId, workspaceId, diff --git a/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.ts b/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.ts index 0886b4b663..2d02c50aa8 100644 --- a/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.ts +++ b/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.ts @@ -362,7 +362,7 @@ export class UserWorkspaceService extends TypeOrmQueryService { } } - if (!isDefined(pictureUrl)) return; + if (!isDefined(pictureUrl) || pictureUrl === '') return; const { files } = await this.fileUploadService.uploadImageFromUrl({ imageUrl: pictureUrl,