|
|
@@ -17,7 +17,10 @@ describe('FileService', () => {
|
|
|
|
|
|
beforeEach(() => {
|
|
|
mockDataSource = {
|
|
|
- getRepository: vi.fn()
|
|
|
+ getRepository: vi.fn(() => ({
|
|
|
+ findOneBy: vi.fn(),
|
|
|
+ save: vi.fn()
|
|
|
+ }))
|
|
|
} as unknown as DataSource;
|
|
|
|
|
|
});
|
|
|
@@ -333,13 +336,13 @@ describe('FileService', () => {
|
|
|
getFileUrl: mockGetFileUrl
|
|
|
} as unknown as MinioService));
|
|
|
|
|
|
- const fileService = new FileService(mockDataSource);
|
|
|
-
|
|
|
- // 模拟getById方法返回文件记录
|
|
|
- vi.spyOn(fileService, 'getById').mockResolvedValue(mockFile);
|
|
|
+ const mockRepository = {
|
|
|
+ findOneBy: vi.fn().mockResolvedValue(mockFile),
|
|
|
+ save: vi.fn().mockResolvedValue({ ...mockFile, size: 2048 } as File)
|
|
|
+ };
|
|
|
|
|
|
- // 模拟update方法更新文件大小
|
|
|
- vi.spyOn(fileService, 'update').mockResolvedValue({ ...mockFile, size: 2048 } as File);
|
|
|
+ mockDataSource.getRepository = vi.fn().mockReturnValue(mockRepository);
|
|
|
+ const fileService = new FileService(mockDataSource);
|
|
|
|
|
|
const result = await fileService.completeMultipartUpload(uploadData);
|
|
|
|
|
|
@@ -349,8 +352,8 @@ describe('FileService', () => {
|
|
|
'upload-123',
|
|
|
[{ PartNumber: 1, ETag: 'etag1' }, { PartNumber: 2, ETag: 'etag2' }]
|
|
|
);
|
|
|
- expect(fileService.getById).toHaveBeenCalledWith(1);
|
|
|
- expect(fileService.update).toHaveBeenCalledWith(1, expect.objectContaining({
|
|
|
+ expect(mockRepository.findOneBy).toHaveBeenCalledWith({ path: '1/test-file.txt' });
|
|
|
+ expect(mockRepository.save).toHaveBeenCalledWith(expect.objectContaining({
|
|
|
size: 2048
|
|
|
}));
|
|
|
expect(result).toEqual({
|
|
|
@@ -375,8 +378,12 @@ describe('FileService', () => {
|
|
|
completeMultipartUpload: mockCompleteMultipartUpload
|
|
|
} as unknown as MinioService));
|
|
|
|
|
|
+ const mockRepository = {
|
|
|
+ findOneBy: vi.fn().mockResolvedValue(null)
|
|
|
+ };
|
|
|
+
|
|
|
+ mockDataSource.getRepository = vi.fn().mockReturnValue(mockRepository);
|
|
|
const fileService = new FileService(mockDataSource);
|
|
|
- vi.spyOn(fileService, 'getById').mockResolvedValue(null);
|
|
|
|
|
|
await expect(fileService.completeMultipartUpload(uploadData)).rejects.toThrow('文件记录不存在');
|
|
|
});
|