|
|
@@ -192,39 +192,47 @@ describe('FileService', () => {
|
|
|
});
|
|
|
});
|
|
|
|
|
|
- // describe('getFileDownloadUrl', () => {
|
|
|
- // it('should return download URL with filename', async () => {
|
|
|
- // const mockFile = {
|
|
|
- // id: 1,
|
|
|
- // path: '1/test-file.txt',
|
|
|
- // name: '测试文件.txt'
|
|
|
- // } as File;
|
|
|
+ describe('getFileDownloadUrl', () => {
|
|
|
+ it('should return download URL with filename', async () => {
|
|
|
+ const mockFile = {
|
|
|
+ id: 1,
|
|
|
+ path: '1/test-file.txt',
|
|
|
+ name: '测试文件.txt'
|
|
|
+ } as File;
|
|
|
|
|
|
- // const mockPresignedUrl = 'https://minio.example.com/download-url';
|
|
|
+ const mockPresignedUrl = 'https://minio.example.com/download-url';
|
|
|
|
|
|
- // vi.spyOn(fileService, 'getById').mockResolvedValue(mockFile);
|
|
|
- // vi.mocked(mockMinioService.getPresignedFileDownloadUrl).mockResolvedValue(mockPresignedUrl);
|
|
|
+ const mockGetPresignedFileDownloadUrl = vi.fn().mockResolvedValue(mockPresignedUrl);
|
|
|
|
|
|
- // const result = await fileService.getFileDownloadUrl(1);
|
|
|
+ vi.mocked(MinioService).mockImplementation(() => ({
|
|
|
+ getPresignedFileDownloadUrl: mockGetPresignedFileDownloadUrl,
|
|
|
+ bucketName: 'd8dai'
|
|
|
+ } as unknown as MinioService));
|
|
|
|
|
|
- // expect(fileService.getById).toHaveBeenCalledWith(1);
|
|
|
- // expect(mockMinioService.getPresignedFileDownloadUrl).toHaveBeenCalledWith(
|
|
|
- // 'd8dai',
|
|
|
- // '1/test-file.txt',
|
|
|
- // '测试文件.txt'
|
|
|
- // );
|
|
|
- // expect(result).toEqual({
|
|
|
- // url: mockPresignedUrl,
|
|
|
- // filename: '测试文件.txt'
|
|
|
- // });
|
|
|
- // });
|
|
|
+ const fileService = new FileService(mockDataSource);
|
|
|
+ vi.spyOn(fileService, 'getById').mockResolvedValue(mockFile);
|
|
|
|
|
|
- // it('should throw error when file not found', async () => {
|
|
|
- // vi.spyOn(fileService, 'getById').mockResolvedValue(null);
|
|
|
+ const result = await fileService.getFileDownloadUrl(1);
|
|
|
|
|
|
- // await expect(fileService.getFileDownloadUrl(999)).rejects.toThrow('文件不存在');
|
|
|
- // });
|
|
|
- // });
|
|
|
+ expect(fileService.getById).toHaveBeenCalledWith(1);
|
|
|
+ expect(mockGetPresignedFileDownloadUrl).toHaveBeenCalledWith(
|
|
|
+ 'd8dai',
|
|
|
+ '1/test-file.txt',
|
|
|
+ '测试文件.txt'
|
|
|
+ );
|
|
|
+ expect(result).toEqual({
|
|
|
+ url: mockPresignedUrl,
|
|
|
+ filename: '测试文件.txt'
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ it('should throw error when file not found', async () => {
|
|
|
+ const fileService = new FileService(mockDataSource);
|
|
|
+ vi.spyOn(fileService, 'getById').mockResolvedValue(null);
|
|
|
+
|
|
|
+ await expect(fileService.getFileDownloadUrl(999)).rejects.toThrow('文件不存在');
|
|
|
+ });
|
|
|
+ });
|
|
|
|
|
|
// describe('createMultipartUploadPolicy', () => {
|
|
|
// it('should create multipart upload policy successfully', async () => {
|