fix: complete first version issue remediation

This commit is contained in:
hectorzhao
2026-07-11 10:14:37 +08:00
parent 709ac97764
commit 208a6c23f8
73 changed files with 1549 additions and 245 deletions
+32
View File
@@ -49,6 +49,38 @@ describe('FilesService', () => {
});
});
it('restores UTF-8 filenames that multipart parsing exposed as Latin-1', async () => {
const prisma = {
fileObject: {
create: jest.fn().mockImplementation(({ data }) => Promise.resolve({ id: 'file-1', ...data })),
},
};
const objectStorage = {
getBucket: jest.fn().mockReturnValue('cmpp-platform'),
putObject: jest.fn().mockResolvedValue({ etag: 'etag-1' }),
presignedPutObject: jest.fn(),
};
const service = new FilesService(prisma as never, objectStorage as never);
const originalname = Buffer.from('营业执照.png', 'utf8').toString('latin1');
await service.upload({ purpose: 'enterprise_photo' }, {
originalname,
mimetype: 'image/png',
size: 12,
buffer: Buffer.from('file-content'),
});
expect(prisma.fileObject.create).toHaveBeenCalledWith({
data: expect.objectContaining({ fileName: '营业执照.png' }),
});
expect(objectStorage.putObject).toHaveBeenCalledWith(
expect.stringMatching(/营业执照\.png$/),
expect.any(Buffer),
12,
'image/png',
);
});
it('downloads file content from object storage by FileObject id', async () => {
const fileObject = {
id: 'file-1',