diff --git a/src/app/drive/services/file.service/uploadFile.test.ts b/src/app/drive/services/file.service/uploadFile.test.ts index 4c2006338..b9ae554b3 100644 --- a/src/app/drive/services/file.service/uploadFile.test.ts +++ b/src/app/drive/services/file.service/uploadFile.test.ts @@ -153,6 +153,51 @@ describe('Create File Entry', () => { ownerToken, ); }); + + test('When creating a file entry for personal storage and a resources token is present, then the file entry for personal storage should be created using that token', async () => { + const file: FileToUpload = { + name: 'personal-file', + size: 2048, + type: 'txt', + content: new File(['content'], 'personal-file.txt'), + parentFolderId: 'folder-uuid-456', + }; + const bucketId = 'personal-bucket'; + const fileId = 'personal-file-id'; + const resourcesToken = 'resources-token'; + const ownerToken = 'owner-token'; + + const expectedResponse = { id: 'personal-created-id', name: file.name }; + const mockCreateFileEntryByUuid = vi.fn().mockResolvedValue(expectedResponse); + mockSdkFactory.getNewApiInstance.mockReturnValue({ + createNewStorageClient: vi.fn(() => ({ + createFileEntryByUuid: mockCreateFileEntryByUuid, + })), + } as any); + + const result = await createFileEntry({ + bucketId, + fileId, + file, + isWorkspaceUpload: false, + resourcesToken, + ownerToken, + }); + + expect(result).toEqual(expectedResponse); + expect(mockCreateFileEntryByUuid).toHaveBeenCalledWith( + expect.objectContaining({ + fileId: fileId, + type: file.type, + size: file.size, + plainName: file.name, + bucket: bucketId, + folderUuid: file.parentFolderId, + encryptVersion: StorageTypes.EncryptionVersion.Aes03, + }), + resourcesToken, + ); + }); }); describe('Uploading a file', () => { diff --git a/src/app/drive/services/file.service/uploadFile.ts b/src/app/drive/services/file.service/uploadFile.ts index f1731e1b1..15aad35bd 100644 --- a/src/app/drive/services/file.service/uploadFile.ts +++ b/src/app/drive/services/file.service/uploadFile.ts @@ -77,7 +77,7 @@ export const createFileEntry = async ({ date: date.toISOString(), }; - return storageClient.createFileEntryByUuid(fileEntry, ownerToken); + return storageClient.createFileEntryByUuid(fileEntry, resourcesToken ?? ownerToken); } }; diff --git a/src/views/Shared/SharedView.tsx b/src/views/Shared/SharedView.tsx index c7f4f8122..bf4a0217d 100644 --- a/src/views/Shared/SharedView.tsx +++ b/src/views/Shared/SharedView.tsx @@ -405,6 +405,7 @@ function SharedView({ encryptionKey: currentUser?.mnemonic, bucketId: currentUser.bucket, token, + resourcesToken: token, }; } else { const mnemonicDecrypted = @@ -416,6 +417,7 @@ function SharedView({ encryptionKey: mnemonicDecrypted, bucketId: ownerBucket, token, + resourcesToken: token, }; } }